>백엔드 개발 >Golang >`if`가 이 변수의 범위를 변경하는 이유는 무엇입니까?

`if`가 이 변수의 범위를 변경하는 이유는 무엇입니까?

WBOY
WBOY앞으로
2024-02-05 23:57:11447검색

为什么 `if` 改变了这个变量的范围

질문내용

나에게도 이런게 있었다면

사례 1:

으아악

사례 2:

으아악

내 질문은 왜 변수의 범위가 str 이 형식으로 사용될 때 변경되는지 입니다

if str, err := m.something(); err != nil {
        return err
    }

fmt.println(str)  //str is undefined variable

정답


if 문(forswitch도 포함)은 암시적 차단, 언어 사양에 따라 :=는 선언 및 할당에 사용됩니다. if 다음에 if 语句(以及 forswitch)是隐式块,根据语言规范,:= 用于声明和赋值。如果您希望 strif를 사용하려면 변수를 먼저 선언한 다음 if 문에 값을 할당하면 됩니다.

으아악

위 내용은 `if`가 이 변수의 범위를 변경하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제