2014-07-23 7 views
12

Załóżmy Przejdź mamy funkcję powracającego dwa argumentyGolang: Za pomocą jednej wartości w warunkowego z funkcji powrocie wielu argumentów

func squareAndCube(int side) (square int, cube int) { 
    square = side * side 
    cube = square * side 
    return 
} 

Następnie chcesz użyć pierwszego (drugiego) wartość tej funkcji w warunkowej :

square, _ := squareAndCube(n) 
if square > m { 
    ... 
} 

Czy jednak możemy zrobić pierwsze dwie linie w jednym wierszu, jeśli nie potrzebujemy kwadratu wartości do użycia w innym miejscu? Na przykład.

if squareAndCube(n).First() > m { 
    ... 
} 

Odpowiedz

20

Nie można wybrać jedną z wielu zwracane wartości, ale można napisać coś

if square, _ := squareAndCube(n); square > m { 
    // ... 
} 

Zmienna square będzie ważne tylko w zakresie if. Te "proste instrukcje" mogą być używane w if statements, switch statements i innych konstruktach, takich jak pętle for.

Zobacz także effective go article on if statements.

Powiązane problemy