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

댓글 남기기

대구에서 TV 버리는 방법: 무료 방문수거와 대형폐기물 신고 정리

대구에서 TV 버리는 방법: 무료 방문수거와 대형폐기물 신고 정리

대구에서 TV를 버리는 방법을 정리했습니다. 폐가전 무상방문수거 신청, 구·군별 대형폐기물 신고, TV 받침대 처리와 배출 전 체크리스트를 확인하세요.

고양에서 TV 버리는 방법: 무료 수거와 대형폐기물 신고 비교

고양에서 TV 버리는 방법: 무료 수거와 대형폐기물 신고 비교

고양에서 TV를 버릴 때 1599-0903 무상방문수거, 새 제품 판매처 회수, 고양시 대형폐기물 신고를 크기·상태·비용별로 비교하고 흔한 오해와 배출 순서를 안내합니다.

울산에서 냉장고 버리는 방법: 무료 수거부터 대형폐기물 신고까지

울산에서 냉장고 버리는 방법: 무료 수거부터 대형폐기물 신고까지

울산에서 냉장고를 버릴 때 1599-0903 무료 방문수거, 새 제품 구매처 회수, 구·군 대형폐기물 신고를 비용과 조건별로 비교하고 안전한 배출 순서를 안내합니다.

전주에서 세탁기 버리는 방법: 무상수거 신청부터 배출까지

전주에서 세탁기 버리는 방법: 무상수거 신청부터 배출까지

전주에서 세탁기 버리는 방법을 정리했습니다. 일반·드럼세탁기 무상 방문수거 신청, 배출 장소, 준비사항, 제한 조건과 대형폐기물 대안을 확인하세요.

대구에서 자전거 버리는 방법: 대형폐기물 신고부터 배출까지

대구에서 자전거 버리는 방법: 대형폐기물 신고부터 배출까지

대구에서 자전거를 버릴 때 필요한 구·군 확인, 대형생활폐기물 신고, 수수료 확인, 배출번호 표시와 지정 장소 배출 방법을 가상 사례와 함께 정리합니다.

소파는 어떻게 버려야 하나?

소파는 어떻게 버려야 하나?

소파를 일반쓰레기로 버리면 안 되는 이유와 대형생활폐기물 신고, 수수료 확인, 안전한 운반 및 배출 방법을 단계별로 안내합니다.

폐형광등은 어디에 버려야 하나? 종류별 배출 장소와 깨졌을 때 처리법

폐형광등은 어디에 버려야 하나? 종류별 배출 장소와 깨졌을 때 처리법

폐형광등은 전용 수거함에 깨지지 않게 배출하는 것이 원칙입니다. 아파트·주민센터 등 수거 장소 찾기, 깨진 형광등 처리, LED와 백열전구 구분까지 실용적으로 정리했습니다.

수원에서 TV 버리는 방법: 무료 방문수거부터 대형폐기물 처리까지

수원에서 TV 버리는 방법: 무료 방문수거부터 대형폐기물 처리까지

수원에서 TV 버리는 방법을 정리했습니다. 무료 폐가전 방문수거 예약, 벽걸이 TV 철거, 준비물, 수거 불가 사례와 대형폐기물 처리 기준을 확인하세요.

부산에서 이불 버리는 방법: 구·군별 신고, 수수료, 배출 순서까지

부산에서 이불 버리는 방법: 구·군별 신고, 수수료, 배출 순서까지

부산에서 이불을 버릴 때 먼저 확인할 것은 거주 구·군의 대형폐기물 기준입니다. 연제구·해운대구·사상구 공식 기준의 차이, 신고·결제·배출 순서, 전기매트와 일반 이불의 구분, 실수하기 쉬운 점을 정리했습니다.

남양주에서 노트북 버리는 방법: 무상수거, 대형폐기물 신고, 개인정보 삭제까지

남양주에서 노트북 버리는 방법: 무상수거, 대형폐기물 신고, 개인정보 삭제까지

남양주에서 노트북 버리는 방법을 정리했습니다. 무상방문수거 조건, 대형폐기물 신고, 개인정보 삭제와 배터리 주의사항을 확인하세요.