Sök…


Syntax

  • var x int // deklarera variabel x med typ int
  • var s string // deklarera variabel med typsträng
  • x = 4 // definiera x-värde
  • s = "foo" // definiera s-värde
  • y: = 5 // förklara och definiera y sluta sin typ till int
  • f: = 4.5 // förklara och definiera f att dra slutsatsen till float64
  • b: = "bar" // förklara och definiera b som släpper sin typ till sträng

Grundläggande variabel deklaration

Go är ett statiskt typspråk, vilket innebär att du i allmänhet måste ange vilken typ av variabler du använder.

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

Flera variabel tilldelning

I Go kan du deklarera flera variabler samtidigt.

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

Om en funktion returnerar flera värden kan du också tilldela värden till variabler baserade på funktionens returvärden.

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

Tom identifierare

Go kommer att kasta ett fel när det finns en variabel som är oanvänd för att uppmuntra dig att skriva bättre kod. Det finns dock vissa situationer där du verkligen inte behöver använda ett värde som är lagrat i en variabel. I dessa fall använder du en "tom identifierare" _ att tilldela och kassera det tilldelade värdet.

En tom identifierare kan tilldelas ett värde av valfri typ och används oftast i funktioner som returnerar flera värden.

Flera avkastningsvärden

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
}

Använd 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)
    }

}

Kontrollera en variabelns typ

Det finns vissa situationer där du inte är säker på vilken typ en variabel är när den returneras från en funktion. Du kan alltid kontrollera en variabeltyp med var.(type) om du är osäker på vilken typ det är:

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow