12

Go を発見したばかりで、今のところ非常に興味があります。私は怠惰であることを知っていますが、if ステートメントで複数の変数を初期化できるかどうかを知りたいです。私は次のことが可能であることを知っています:

if x := 5; x == 5 {
    fmt.Printf("Whee!\n")
}

私は次のことを試しました:

if x := 5, y := 38; x == 5 {
    fmt.Printf("Whee! %d\n", y)
}

if x := 5 && y := 38; x == 5 {
    fmt.Printf("Whee! %d\n", y)
}

しかし、どちらも機能しませんでした。Go Web サイトのドキュメントに目を通したので、不足しているものはありますか、それとも単に不可能なのでしょうか?

4

2 に答える 2

22

方法は次のとおりです。

package main

import (
    "fmt"
)

func main() {
    if x, y := 5, 38; x == 5 {
        fmt.Printf("Whee! %d\n", y)
    }
}


このリビジョンでテスト済み:

changeset:   3975:b51fd2d6c160
tag:         tip
user:        Kevin Ballard <xxxxxxxxxxxxxxxxxxxxx>
date:        Tue Nov 10 20:05:24 2009 -0800
summary:     Implement new emacs command M-x gofmt
于 2009-11-11T22:12:10.713 に答える