Go의 짧은 변수 선언 연산자

Golang 의 짧은 변수 선언 연산자(:=)는 고유한 이름과 초기 값을 갖는 변수를 생성하는 데 사용됩니다. 이 연산자를 사용하는 주된 목적은 함수 내에서 지역 변수를 선언하고 초기화하고 변수의 범위를 좁히는 것입니다. 변수의 유형은 표현식의 유형에 따라 결정됩니다. var 키워드는 특정 유형의 변수를 만드는 데에도 사용됩니다. 따라서 Golang에서 변수를 생성하는 방법은 두 가지가 있다고 할 수 있습니다.

Go의 짧은 변수 선언 연산자

  • var 키워드 사용
  • 짧은 변수 선언 연산자(:=)를 사용하세요.

이제 Golang에서 짧은 변수 선언 연산자를 사용하는 방법을 알아보겠습니다!

주요 내용

Golang에서 짧은 변수 선언 연산자를 사용하기 위한 구문

variable_name := biểu thức hoặc giá trị

여기서는 선언 직후에 변수를 초기화해야 합니다. 하지만 var 키워드를 사용하면 선언 시 초기화를 피할 수 있습니다. 변수의 유형을 언급할 필요는 없습니다. 오른쪽의 표현식이나 값은 변수의 유형을 평가하는 데 사용됩니다.

예를 들어: 여기서는 짧은 선언 연산자를 사용하여 변수를 선언하고 변수의 유형을 지정하지 않습니다. 변수의 유형은 연산자 오른쪽에 있는 표현식의 유형에 따라 결정됩니다 :=.

// Minh họa chương trình Go dùng := (toán tử khai báo ngắn) 
package main

import "fmt"

func main() {

	// khai báo và khởi tạo biến
	a := 30

	// lấy một biến chuỗi
	Language: = "Go Programming"

	fmt.Println("The Value of a is: ", a)
	fmt.Println("The Value of Language is: ", Language)

}

결과:

The Value of a is:  30
The Value of Language is:  Go Programming

짧은 선언 연산자를 사용하여 여러 변수 선언

짧은 선언 연산자는 단일 선언에서 동일하거나 다른 유형의 여러 변수를 선언하는 데에도 사용할 수 있습니다. 이러한 변수의 유형은 연산자 오른쪽의 표현식에 의해 평가됩니다 :=.

예를 들어:

// Minh họa chương trình Go dùng toán tử khai báo ngắn := short để khai báo nhiều
// biến thành một câu lệnh khai báo duy nhất
package main

import "fmt"

func main() { 

// nhiều biến của cùng kiểu(int)
geek1, geek2, geek3 := 117, 7834, 5685

// nhiều biến của các kiểu khác nhau
geek4, geek5, geek6 := "GFG", 859.24, 1234

// Hiện giá trị và kiểu của biến
fmt.Printf("The value of geek1 is : %d\n", geek1) 
fmt.Printf("The type of geek1 is : %T\n", geek1) 

fmt.Printf("\nThe value of geek2 is : %d\n", geek2) 
fmt.Printf("The type of geek2 is : %T\n", geek2) 

fmt.Printf("\nThe value of geek3 is : %d\n", geek3) 
fmt.Printf("The type of geek3 is : %T\n", geek3)

fmt.Printf("\nThe value of geek4 is : %s\n", geek4) 
fmt.Printf("The type of geek4 is : %T\n", geek4)


fmt.Printf("\nThe value of geek5 is : %f\n", geek5) 
fmt.Printf("The type of geek5 is : %T\n", geek5)

fmt.Printf("\nThe value of geek6 is : %d\n", geek6) 
fmt.Printf("The type of geek6 is : %T\n", geek6)

} 

결과:

The value of geek1 is : 117
The type of geek1 is : int

The value of geek2 is : 7834
The type of geek2 is : int

The value of geek3 is : 5685
The type of geek3 is : int

The value of geek4 is : GFG
The type of geek4 is : string

The value of geek5 is : 859.240000
The type of geek5 is : float64

The value of geek6 is : 1234
The type of geek6 is : int

기억해야 할 중요한 사항:

짧은 선언 연산자는 연산자의 왼쪽에 있는 변수 중 하나 이상을 :=새로 선언할 때 사용할 수 있습니다. 짧은 변수 선언 연산자는 같은 어휘 블록 내에서 선언된 변수에 대한 할당처럼 작동합니다. 이 개념을 더 잘 이해하기 위해 예를 들어 보겠습니다.

예제 1: 아래 프로그램은 연산자 왼쪽에 새로운 변수가 없기 때문에 오류가 발생합니다 :=.

// Minh họa chương trình Go dùng khai báo biến ngắn
package main

import "fmt"

func main() { 

	// lấy hai biến
	p, q := 100, 200

	fmt.Println("Value of p ", p, "Value of q ", q)

	// Báo lỗi vì không có biến mới ở bên tay trái của :=
	p, q := 500, 600
	
	fmt.Println("Value of p ", p, "Value of q ", q)
}

오류:

./prog.go:17:10: no new variables on left side of := 

예 2:

아래 프로그램에서는 geek3, geek2 := 456, 200 줄이 오류 없이 정상적으로 작동하는 것을 볼 수 있습니다. 그 이유는 연산자의 왼쪽에 최소한 하나의 새 변수, 즉 geek3가 있기 때문입니다 :=.

// Chương trình Go dùng toán tử khai báo biến ngắn
package main 

import "fmt"

func main() { 

// Ở đây, khai báo biến ngắn hoạt động
// như một phép gán cho biến geek1
// vì cùng một biến có trong cùng một khối
// do đó giá trị của geek2 được thay đổi từ 100 thành 200
geek1, geek2 := 78, 100

// ở đây, := được sử dụng như một phép gán cho geek2
// vì nó đã được khai báo. Ngoài ra, dòng này
// sẽ hoạt động tốt vì geek3 mới được tạo
// biến
geek3, geek2 := 456, 200

// Nếu bạn thử chạy các dòng được chú thích,
// thì trình biên dịch sẽ báo lỗi vì
// các biến này đã được định nghĩa
// geek1, geek2 := 745, 956
// geek3 := 150

// Hiện giá trị của các biến
fmt.Printf("The value of geek1 and geek2 is : %d %d\n", geek1, geek2) 
											
fmt.Printf("The value of geek3 and geek2 is : %d %d\n", geek3, geek2) 
} 

결과:

The value of geek1 and geek2 is : 78 200
The value of geek3 and geek2 is : 456 200

Go는 선언된 변수에 다른 데이터 유형의 값을 할당할 수 없기 때문에 강력한 유형의 언어입니다.

예를 들어:

// Minh họa chương trình Go dùng toán tử khai báo biến ngắn
package main 

import "fmt"

func main() { 

	// lấy một biến của int
	z := 50
	
	fmt.Printf("Value of z is %d", z)
	
	// gán lại giá trị của kiểu chuỗi
// nó sẽ đưa ra lỗi
	z := "Golang"
} 

오류:

./prog.go:16:4: no new variables on left side of := 
./prog.go:16:7: cannot use “Golang” (type string) as type int in assignment 
 

짧은 변수 선언에서 Golang은 여러 값을 반환하는 함수 호출을 사용하여 변수 집합을 초기화할 수 있도록 합니다. 또는 변수에 런타임에 평가되는 값을 할당할 수도 있다고 말할 수 있습니다.

예를 들어:

// Tại đây, hàm math.Max function trả về
// số lớn nhất trong biến i 
i := math.Max(x, y)

지역 변수 또는 전역 변수

짧은 변수 선언 연산자(:=)를 사용하면 블록 수준에서만 범위가 있는 지역 변수를 선언할 수 있습니다. 일반적으로 지역 변수는 함수 블록 내부에서 선언됩니다. 짧은 선언 연산자를 사용하여 전역 변수를 선언하려고 하면 오류가 발생합니다.

예시 1:

// Chương trình Go hiển thị cách sử dụng toán tử :=
// để khai báo các biến cục bộ
package main

import "fmt"

// sử dụng từ khóa var để khai báo
// và khởi tạo biến
// đó là package hoặc bạn có thể nói
// phạm vi cấp toàn cục
var geek1 = 900

// sử dụng khai báo biến ngắn
// sẽ báo lỗi
geek2 := 200

func main() {

// truy cập geek1 bên trong hàm
fmt.Println(geek1)

// truy cập geek2 bên trong hàm
fmt.Println(geek2)

}

오류:

./prog.go:15:1: syntax error: non-declaration statement outside function body 

예 2:

// Chương trình Go dùng toán tử := operator
// để khai báo các biến cục bộ
package main 

import "fmt"

// dùng từ khóa var để khai báo
// và khởi tạo biến
// nó đóng gói hoặc bạn có thể báo
// phạm vi cấp toàn cục
var geek1 = 900


func main() { 

// dùng khai báo biến ngắn
// bên trong hàm chính
// nó có phạm vi cục bộ tức là không thể
// truy cập bên ngoài hàm chính
geek2 := 200

// truy cập geek1 bên trong hàm này
fmt.Println(geek1) 

// truy cập geek2 bên trong hàm này
fmt.Println(geek2) 
	
} 

결과:

900
200
Sign up and earn $1000 a day ⋙

Leave a Comment

이제 Passkey로 전환할 때입니다. 피싱 방지 비밀번호 대안입니다!

이제 Passkey로 전환할 때입니다. 피싱 방지 비밀번호 대안입니다!

기존 비밀번호의 현대적 대안인 패스키를 사용하면 더 이상 비밀번호를 기억하거나 관리(비밀번호 관리자를 사용하거나 사용하지 않고도)하거나 재설정할 필요가 없습니다.

브라우저 백업 방법: 북마크, 확장 프로그램, 비밀번호 등

브라우저 백업 방법: 북마크, 확장 프로그램, 비밀번호 등

브라우저를 영구적으로 전환하든, 데이터 손실 가능성을 줄이려는 경우에도 주기적으로 브라우저를 백업해야 합니다.

왜 물소와 소는 충분한 영양소를 얻기 위해 풀만 먹어야 할까요?

왜 물소와 소는 충분한 영양소를 얻기 위해 풀만 먹어야 할까요?

소는 왜 풀을 먹고도 살이 찌고 영양가 있는 우유를 생산할까요? 초식동물이 뚱뚱한 이유를 알고 싶다면 아래 기사를 읽어보세요.

과민성 대장 증후군이 있는 사람들이 복용해서는 안 되는 보충제

과민성 대장 증후군이 있는 사람들이 복용해서는 안 되는 보충제

모든 보충제가 과민성 대장 증후군(IBS)에 유익한 것은 아니며, 어떤 보충제는 증상을 악화시킬 수도 있습니다.

그룹 채팅을 위한 6가지 iMessage 앱

그룹 채팅을 위한 6가지 iMessage 앱

그룹 채팅을 위해 설치할 수 있는 iMessage 앱이 많이 있으며, 이를 통해 그룹 구성원과의 대화 경험을 향상시킬 수 있습니다. 그룹 채팅을 위한 iMessage 앱 6개 목록은 다음과 같습니다.

CMOS 배터리 교체 방법

CMOS 배터리 교체 방법

컴퓨터의 시간 또는 날짜 설정이 손실되거나 CMOS 읽기 오류, CMOS 체크섬 오류 또는 CMOS 배터리 오류 메시지가 표시되는 경우 CMOS 배터리를 교체해야 합니다.

최신 슈퍼비스트 리더 코드 및 코드 입력 방법

최신 슈퍼비스트 리더 코드 및 코드 입력 방법

슈퍼 비스트 리더 코드는 플레이어가 슈퍼 트레이너가 되는 것을 지원하여 매력적인 보상을 얻는 데 도움이 됩니다. 최신 슈퍼비스트 리더 코드 목록과 코드 입력 방법은 아래와 같습니다.

다이킨 에어컨 타이머를 원하는 시간에 켜지고 꺼지도록 설정하는 방법

다이킨 에어컨 타이머를 원하는 시간에 켜지고 꺼지도록 설정하는 방법

다이킨 에어컨 타이머는 사용자가 집에 오기 전에 에어컨을 켜거나 잠자는 동안 에어컨을 끄기 위해 타이머를 설정하는 데 자주 사용하는 유용한 기능 중 하나입니다.

세탁기 타이머가 종종 틀리는 이유

세탁기 타이머가 종종 틀리는 이유

오늘날 대부분의 세탁기는 표시 시간과 실제 세탁 시간 차이가 10~20분입니다.

토시바 에어컨 리모컨 배터리 교체 방법

토시바 에어컨 리모컨 배터리 교체 방법

토시바 에어컨 리모컨 배터리를 교체하는 방법은? Toshiba 에어컨 리모컨 배터리를 교체하는 방법에 대해 알아보려면 아래 기사를 읽어보세요.

최신 Hero AFK: VNG Royal War 코드 요약

최신 Hero AFK: VNG Royal War 코드 요약

Hero AFK: VNG War 기프트 코드를 입력하면 다양한 귀중한 게임 내 아이템을 받을 수 있습니다. 지금 알아보세요

최신 미니 영웅 Dai Chien Tam Quoc 코드

최신 미니 영웅 Dai Chien Tam Quoc 코드

코드 미니 히어로즈 다이 치엔 탐 꾸옥은 플레이어에게 돈, 다이아몬드, 일반 경험치, 캐릭터 경험치, 체력, 백만 군인 명령서 등 다양한 매력적인 아이템을 제공합니다.

Google Gemini를 사용해야 하는 5가지 이유

Google Gemini를 사용해야 하는 5가지 이유

경쟁사만큼 널리 알려지지는 않았지만, 구글의 제미니 AI는 많은 장점을 가지고 있습니다. 제미니에 주목할 만한 다섯 가지 이유를 소개합니다.

AI 기술로 만든 3분짜리 영상, 일본 애니메이션 업계에 공포 불러일으켜

AI 기술로 만든 3분짜리 영상, 일본 애니메이션 업계에 공포 불러일으켜

넷플릭스는 최근 AI 기술을 이용해 만든 3분짜리 애니메이션 영화 '개와 소년'을 자사 YouTube 채널에 공개해 일본 시장을 공략했습니다.

PXE-E61 오류 수정 방법: 미디어 테스트 실패, 케이블 확인

PXE-E61 오류 수정 방법: 미디어 테스트 실패, 케이블 확인

PXE-E61 오류는 일부 마더보드에서 지원하는 PXE(Preboot eXecution Environment)와 관련이 있습니다. PXE는 로컬 하드 드라이브가 아닌 네트워크를 통해 부팅 가능한 운영 체제를 검색하여 로드할 수 있는 특수 부팅 모드입니다.