수색…


통사론

  • 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