10

テスト用の Go プログラムは次のとおりです。

package main
import fmt "fmt"
func main () {
    ex := "moo cow\n";
    fmt.Print (ex)
}

セミコロンで、コンパイルします。ただし、セミコロンが削除された場合、次のことは行われません。

string.go:5: fmt 付近の構文エラー

何か案は?


更新 (2012 年 3 月) : 新しい Go リリースでは、両方の形式 (セミコロンの有無にかかわらず) をコンパイルできます。

4

2 に答える 2

13

Goプログラミング言語仕様から:

ステートメントのリストの要素は、前のステートメントが次の場合にのみ省略できるセミコロンで区切られます。

  • 宣言のリストの閉じ括弧 ")" で終わります。また
  • 式の一部ではない閉じ中かっこ "}" で終わります。
于 2009-11-12T05:12:49.233 に答える
1

まあ、答えは技術的にはhttp://golang.org/doc/effective_go.html#semicolonsにありますが、あまり明確ではありません。ステートメントの最後にセミコロンを残すことはできますが、式を残すことはできないようです。私は(ここでは確信が持てませんが)式は「=」(または「:=」)を含むものだと思います(チュートリアルでは += は問題ないようですが)。

于 2009-11-12T05:10:01.997 に答える