답변:
go :=
및 에는 두 가지 유형의 할당 연산자가 =
있습니다. 그것들은 (할당과 관련하여) 의미 론적으로 동일하지만 첫 번째는 "짧은 변수 선언"( http://golang.org/ref/spec#Short_variable_declarations ) 이기도합니다. 즉 , 왼쪽에는 적어도 하나의 그것이 정확하도록 새로운 변수 선언.
두 번째를 간단한 대 입문으로 변경 하거나 :=
-> =
알고리즘에 문제가없는 경우 새 변수를 사용할 수 있습니다.
:=
함께 사용할 수 _
없습니까? 예를 들면_ := someFunc()
참고로 재 선언은 다중 변수 짧은 선언에만 나타날 수 있습니다.
언어 사양에서 인용 :
일반 변수 선언과 달리, 짧은 변수 선언은 원래 동일한 유형의 동일한 블록에서 이전에 선언되었고 공백이 아닌 변수 중 하나 이상이 새로운 변수 인 경우 변수를 다시 선언 할 수 있습니다. 결과적으로 재 선언은 다중 변수 짧은 선언에만 나타날 수 있습니다. 재 선언은 새 변수를 도입하지 않습니다. 원본에 새 값을 할당 할뿐입니다.
package main
import "fmt"
func main() {
a, b := 1, 2
c, b := 3, 4
fmt.Println(a, b, c)
}
다음은 golang의 변수 재 선언에 대한 아주 좋은 예입니다 : https://stackoverflow.com/a/27919847/4418897
myArray :=[...]int{12,14,26}
이전 주석가가 언급했듯이, :=
는 축약 형 및 / 또는 약식 변수 선언 형식입니다 .
그래서 위의 문장에서 당신은 두 가지 일을하고 있습니다.
코드의 두 번째 부분은 실패합니다.
myArray :=[...]int{11,12,14} //error pointing on this line
이미 정수 값을 포함 하는 기존 변수 myArray를 다시 선언 합니다.
이것은 작동합니다 :
myArray = [...]int{11,12,14} // NO error will be produced by this line
왜냐하면 기존 (미리 선언 된 / 초기화 된) 변수에 정수 배열을 할당 하기 때문입니다 .
myArray,x = [...]int{11,12,14},3