Zoeken…


Syntaxis

  • var x int // declareer variabele x met type int
  • var s string // declareer variabele s met type string
  • x = 4 // definieer x waarde
  • s = "foo" // definieer s waarde
  • y: = 5 // declareer en definieer y en leid het type af naar int
  • f: = 4.5 // declareer en definieer f en leid het type af naar float64
  • b: = "bar" // declareer en definieer b leid het type daarvan naar string

Basis variabele verklaring

Go is een statisch getypte taal, wat betekent dat u meestal het type van de variabelen die u gebruikt moet aangeven.

// 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

Meerdere variabele toewijzing

In Go kunt u meerdere variabelen tegelijkertijd declareren.

// 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`

Als een functie meerdere waarden retourneert, kunt u ook waarden toewijzen aan variabelen op basis van de retourwaarden van de functie.

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

Blanco ID

Go geeft een foutmelding wanneer er een variabele is die niet wordt gebruikt, om u aan te moedigen betere code te schrijven. Er zijn echter enkele situaties waarin u echt geen waarde hoeft te gebruiken die is opgeslagen in een variabele. In die gevallen, een "blanco identifier" gebruikt u _ toewijzen en gooi de toegekende waarde.

Aan een blanco ID kan een waarde van elk type worden toegewezen en wordt meestal gebruikt in functies die meerdere waarden retourneren.

Meerdere retourwaarden

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
}

Gebruik 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)
    }

}

Het type van een variabele controleren

Er zijn enkele situaties waarin u niet zeker weet welk type een variabele is wanneer deze wordt geretourneerd door een functie. U kunt het type van een variabele altijd controleren met var.(type) als u niet zeker weet welk type het is:

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow