아래의 두 예제는 같은 의미입니다.

1.

if v, err := Read(); err == nil {
	// do something with v, because Read() did not
	// had an error (err)
}

2.

v, err := Read()
if err == nil {
	// do something with v
}


두 문법의 결과는 같지만 차이점은 첫 번째 예제에서는 v와 err의 범위는 if {}블록으로 제한됩니다. 두 번째 예제에서는 v와err은 선언된 블록에 속해 있습니다. 즉, if {}에 속해있지 않다는 뜻입니다. {}블록에서 ;을 사용하는 것과 거의 같습니다.

if문에 ;을 사용할 땐, 선언되는 변수가 조건문 안에서만 사용된다고 확실시 될 때 사용하면 좋습니다.

+ Random Posts