golang에서 'var'와 ':='의 차이점

王林
풀어 주다: 2019-12-24 17:11:23
원래의
6771명이 탐색했습니다.

golang에서 'var'와 ':='의 차이점

Go 언어에는 변수를 정의하는 방법이 많이 있습니다.

var 키워드를 사용하는 것은 Go에서 변수를 정의하는 가장 기본적인 방법입니다. 때로는 :=도 변수를 정의하는 데 사용됩니다. var关键字是Go最基本的定义变量方式,有时也会使用到:=来定义变量。

定义变量

// 定义一个名称为“variableName”,类型为"type"的变量
// var variableName type
var number int
로그인 후 복사

定义变量并初始化值

// 初始化“variableName”的变量为“value”值,类型是“type”
// var variableName type = value
var number int = 10
로그인 후 복사

同时初始化多个变量,又叫平行赋值

/*
    定义三个类型都是"type"的变量,并且分别初始化为相应的值
    vname1为v1,vname2为v2,vname3为v3
*/
// var vname1, vname2, vname3 type = v1, v2, v3
var number1, number2, number3 int = 1, 2, 3
로그인 후 복사

你是不是觉得上面这样的定义有点繁琐?没关系,因为Go语言的设计者也发现了,有一种写法可以让它变得简单一点。我们可以直接忽略类型声明,那么上面的代码变成这样了:

/*    
定义三个变量,它们分别初始化为相应的值    
vname1为v1,vname2为v2,vname3为v3    
然后Go会根据其相应值的类型来帮你初始化它们
*/
// var vname1, vname2, vname3 = v1, v2, v3
var number1, number2, number3 = 1, 2, 3
로그인 후 복사

你觉得上面的还是有些繁琐?好吧,我也觉得。让我们继续简化:

/*    
定义三个变量,它们分别初始化为相应的值    
vname1为v1,vname2为v2,vname3为v3    
编译器会根据初始化的值自动推导出相应的类型*/
// vname1, vname2, vname3 := v1, v2, v3
number1, number2, number3 := 1, 2, 3
로그인 후 복사

现在是不是看上去非常简洁了?:=这个符号直接取代了vartype,这种形式叫做简短声明。不过它有一个限制,那就是它只能用在函数内部;在函数外部使用则会无法编译通过,所以一般用var方式来定义全局变量。

换句话说,“:=변수 정의

rrreee변수 정의 및 값 초기화

rrreee🎜여러 변수를 동시에 초기화합니다. 병렬 할당이라고도 합니다🎜🎜rrreee🎜위의 정의가 다음과 같다고 생각하시나요? 좀 번거롭다? Go 언어의 설계자들도 Go 언어를 더 간단하게 만드는 방법이 있다는 것을 발견했기 때문에 그것은 중요하지 않습니다. 타입 선언을 직접 무시할 수 있으므로 위 코드는 다음과 같습니다. 🎜rrreee🎜 위 코드가 아직 좀 번거롭다고 생각하시나요? 좋아요, 저도 그렇게 생각해요. 계속해서 단순화해 봅시다:
🎜rrreee🎜이제 아주 간단해 보이지 않나요? := 기호는 vartype을 직접 대체합니다. 이 형식을 짧은 선언이라고 합니다. 그러나 함수 내부에서만 사용할 수 있다는 한계가 있고, 함수 외부에서 사용하면 컴파일되지 않으므로 일반적으로 전역 변수를 정의하는 데 var 메서드를 사용합니다. 🎜🎜즉, ":="는 "지역 변수"를 선언할 때만 사용할 수 있지만 "var"에는 이러한 제한이 없습니다. 🎜🎜🎜추천 관련 기사 및 튜토리얼: 🎜golang 튜토리얼🎜🎜

위 내용은 golang에서 'var'와 ':='의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿