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

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

WBOY
풀어 주다: 2024-02-05 23:57:11
앞으로
456명이 탐색했습니다.

为什么 `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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿