Go 언어의 변수란 무엇입니까?

青灯夜游
풀어 주다: 2022-12-02 19:55:17
원래의
5619명이 탐색했습니다.

Go 언어에서 변수는 프로그램이 실행되는 동안 내용이 변경(수정)될 수 있는 양이며, 변수는 프로그램의 기본 단위이며 메모리의 데이터 저장 공간을 나타냅니다. 변수 이름을 통해 찾았습니다. 변수의 기능은 사용자 데이터를 저장하는 것으로, 계산 결과를 저장하거나 값을 표현할 수 있는 컴퓨터 언어의 추상적인 개념이다.

Go 언어의 변수란 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.

1. 개요

변수(Variable)는 프로그램이 실행되는 동안 내용이 변경(수정)될 수 있는 양이며, 프로그램의 기본 단위이자 데이터 저장소의 표현입니다. 변수 이름은 변수 값을 찾습니다.

변수의 기능은 사용자 데이터를 저장하는 것인데, 계산 결과를 저장하거나 값을 나타낼 수 있는 컴퓨터 언어의 추상적인 개념입니다.

변수는 변수의 식별자를 통해 값을 찾는 과정입니다. 변수의 메모리 시뮬레이션 데모:

Go 언어의 변수란 무엇입니까?

2. 정의: 선언 및 초기화

변수를 정의하려면 var 키워드를 사용하고 동시에 초기화될 수 있는 해당 유형을 지정해야 합니다. 초기화 값이 지정되지 않은 경우에는 해당 유형을 사용합니다. 기본 값은 다음과 같습니다.

// 声明变量,未初始化(默认值初始化)
var name string
// 声明变量,特定值初始化
var user string = "Hank"
로그인 후 복사

Go 언어의 변수는 사용하기 전에 선언해야 하며 정의되지 않은 변수는 직접 사용할 수 없습니다.

3. 유형 기본값(0 값)

Go 언어의 유형 기본값은 다음과 같습니다. 정수 및 부동 소수점 변수의 기본값은 0입니다. 문자열 변수의 기본값은 빈 문자열입니다. 부울 변수의 기본값은 bool입니다. 슬라이스, 함수 및 포인터 변수의 기본값은 nil입니다.

4. 강력한 유형 지정

Go 언어는 강력한 유형의 언어이므로 변수에는 유형이 있어야 하며 변수는 특정 유형의 데이터만 저장할 수 있습니다. [관련 권장사항: Go 동영상 튜토리얼]

5. 유형 파생

변수 정의 시 초기값을 지정하면 유형 정의를 생략할 수 있으며, Go 언어는 유형을 추론할 수 있습니다. 데이터 그 자체. 구문은 다음과 같습니다.

// 声明变量,特定值初始化,类型推导出user为字符串string型
var user = "Hank"
로그인 후 복사

6. 짧은 선언(정의)

변수 정의를 단순화하려면 유형 파생과 함께 := 연산자를 사용하여 변수 정의를 빠르게 완료합니다. :

user := "hank"
로그인 후 복사

7. 일괄 정의

한 번에 여러 변수를 정의하려면 var 또는 :=를 사용하세요. 구문은 다음과 같습니다.

varvar

var (
  v1 = 42
  v2 = "hank"
  )
也可以
var v1, v2 = 42, "hank"
로그인 후 복사

:=

v1, v2 := 42, "hank"
로그인 후 복사

:=

var (
  v1 int
  v2 int
)
// 批量赋值
v1, v2 = 42, 1024
로그인 후 복사

코드 유지 관리가 쉽기 때문에 var() 선언 블록 구문을 사용하는 것이 좋습니다. 8. 일괄 할당

한 번에 여러 변수에 값을 할당합니다. (짧은 정의와 유사합니다. v1, v2, v3 := 42, "hank", false) 변수를 정의한 후 일괄적으로 값을 할당하는 정의 기능은 없습니다! 구문은 다음과 같습니다.

func main() {
  var (
    v1 int
    v2 int
  )
  // 调用函数,接收其返回值
  v1, v2 = getData()
}
// 返回两个值的函数
func getData() (int, int) {
  // 返回了两个值(假设42为最小值,1024为最大值)
  return 42, 1024
}
로그인 후 복사

이 구문은 일반적으로 여러 반환 값을 한 번에 받기 위해 함수의 일괄 반환과 함께 사용됩니다. 구문은 다음과 같습니다.

var (
  v1 = 42
  v2 = 1024
)
// 交换
v1, v2 = v2, v1
로그인 후 복사

값을 교환하는 것이 매우 편리합니다. ​​2개의 변수 중:

func main() {
  var (
    v int
  )
  // 调用函数,仅仅需要第二个返回值,第一,三使用匿名变量占位
  _, v, _ = getData()
}
// 返回两个值的函数
func getData() (int, int, int) {
  // 返回3个值
  return 42, 1024, 2012
}
로그인 후 복사

실행 후, v1==1024, v2==429, 익명 변수

식별자 _(밑줄)이 있는 변수는 시스템에 의해 예약된 익명 변수입니다. 할당 후에는 즉시 해제되고 이를 익명 변수라고 부릅니다. 해당 기능은 변수에 값 구조를 할당하는 변수 자리 표시자입니다. 일반적으로 일괄 할당 중에 사용됩니다. 예를 들어, 함수가 여러 값을 반환하고 그 중 일부만 필요한 경우 필요하지 않은 경우 _를 사용하여 공간을 차지합니다. 데모:

// 全局(函数外)定义3个变量
var (
  v1 = 1
  v2 = 2
  v3 = 3
)
func main() {

  // main{}函数块,定义2个变量
  var (
    v2 = 22
    v3 = 33
  )
  fmt.Println(v1, v2, v3)
  // 结果 1 22 33

  {
    // main()函数内部{}块,定义1个变量
    var (
      v3 = 333
    )
    fmt.Println(v1, v2, v3)
    // 结果 1 22 333
  }
}
로그인 후 복사
10. Go 언어는 블록 기능 도메인입니다. 블록은 함수, if/switch/for 문 또는 독립 {}를 포함하여 {}를 사용하여 정의된 코드 세그먼트를 참조하며 모두 블록입니다. 블록 내에 정의된 변수는 이 블록 내에서만 사용할 수 있습니다. 정의는 var 또는 :=로 정의된 변수를 나타냅니다. Go 언어의 범위는 계단식입니다. 즉, 내부 블록이 동일한 이름을 가진 외부 변수를 정의하지 않는 한 내부 블록이 외부 블록의 변수에 직접 액세스할 수 있음을 의미합니다. 아래 데모:

for i := 0; i < 10; i++ {
  fmt.Println(i)
}
fmt.Println(i)
// 会提示变量i未定义, undefined: i
로그인 후 복사
로그인 후 복사

上面代码中: 在main()中,v2,v3被重新定义,则在main()中,v1是外部,而v2, v3是main函数局部的。 在main()内部的{}中,v3被重新定义,则在main()内部的{}中,v1是外部,而v2是main()定义的, v3是main()内部{}定义的的。

变量可以沿内部作用域向外部作用域查找变量的过程。

带有{}的语句,其中的变量也仅仅在内部有效,例如for,if,switch等,演示:

for i := 0; i < 10; i++ {
  fmt.Println(i)
}
fmt.Println(i)
// 会提示变量i未定义, undefined: i
로그인 후 복사
로그인 후 복사

注意i,是通过短声明在for内部定义的变量,仅仅在for内部有意义。

互不嵌套的{}见作用域不可见,不可互相访问。

func main() {
  {
    v := 42
  }
  {
    fmt.Println(v)
    // 会提示变量v未定义, undefined: v
  }
}
로그인 후 복사

更多编程相关知识,请访问:编程教学!!

위 내용은 Go 언어의 변수란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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