수색…
통사론
- var x int // int 형의 변수 x를 선언한다.
- var s string // 변수 s를 유형 문자열로 선언합니다.
- x = 4 // x 값을 정의
- s = "foo"// 정의 값
- y : = 5 // 형식을 int로 유추하여 y를 선언하고 정의합니다.
- f : = 4.5 // f 타입을 float64로 추론하여 선언하고 정의한다.
- b : = "bar"// 문자열을 유형으로 추론하여 b를 선언하고 정의합니다.
기본 변수 선언
Go는 정적으로 형식이 지정된 언어입니다. 즉, 일반적으로 사용중인 변수의 유형을 선언해야합니다.
// Basic variable declaration. Declares a variable of type specified on the right.
// The variable is initialized to the zero value of the respective type.
var x int
var s string
var p Person // Assuming type Person struct {}
// Assignment of a value to a variable
x = 3
// Short declaration using := infers the type
y := 4
u := int64(100) // declare variable of type int64 and init with 100
var u2 int64 = 100 // declare variable of type int64 and init with 100
다중 변수 할당
Go에서는 여러 변수를 동시에 선언 할 수 있습니다.
// You can declare multiple variables of the same type in one line
var a, b, c string
var d, e string = "Hello", "world!"
// You can also use short declaration to assign multiple variables
x, y, z := 1, 2, 3
foo, bar := 4, "stack" // `foo` is type `int`, `bar` is type `string`
함수가 여러 값을 반환하면 함수의 반환 값을 기반으로 변수에 값을 할당 할 수도 있습니다.
func multipleReturn() (int, int) {
return 1, 2
}
x, y := multipleReturn() // x = 1, y = 2
func multipleReturn2() (a int, b int) {
a = 3
b = 4
return
}
w, z := multipleReturn2() // w = 3, z = 4
공백 식별자
Go는 사용되지 않는 변수가있을 때 오류를 던져 더 나은 코드를 작성하도록 권장합니다. 그러나 변수에 저장된 값을 실제로 사용할 필요가없는 상황이 있습니다. 이러한 경우 할당 된 값을 할당하고 무시하기 위해 "빈 식별자" _
를 사용합니다.
빈 식별자에는 모든 유형의 값을 할당 할 수 있으며 여러 값을 반환하는 함수에서 가장 일반적으로 사용됩니다.
다중 반환 값
func SumProduct(a, b int) (int, int) {
return a+b, a*b
}
func main() {
// I only want the sum, but not the product
sum, _ := SumProduct(1,2) // the product gets discarded
fmt.Println(sum) // prints 3
}
range
사용
func main() {
pets := []string{"dog", "cat", "fish"}
// Range returns both the current index and value
// but sometimes you may only want to use the value
for _, pet := range pets {
fmt.Println(pet)
}
}
변수 유형 검사
변수가 함수에서 반환 될 때 어떤 유형인지 확실하지 않은 경우가 있습니다. 어떤 유형인지 확실하지 않으면 var.(type)
을 사용하여 변수 유형을 항상 확인할 수 있습니다.
x := someFunction() // Some value of an unknown type is stored in x now
switch x := x.(type) {
case bool:
fmt.Printf("boolean %t\n", x) // x has type bool
case int:
fmt.Printf("integer %d\n", x) // x has type int
case string:
fmt.Printf("pointer to boolean %s\n", x) // x has type string
default:
fmt.Printf("unexpected type %T\n", x) // %T prints whatever type x is
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow