0

Go-SQL-Driver ここのサンプルコードを見ています:

//Insert
    stmt, err := db.Prepare("INSERT userinfo SET username=?")

// Update
    stmt, err = db.Prepare("update userinfo set username=?")

なぜInsert使用する:=Updateに使用するの=ですか?両方あるべきだと私には思えます:=

4

3 に答える 3

9

:=短い変数宣言で使用されます。左側の変数を宣言し、それらに代入します。(これは、 The Go Programming Language Specificationの「短い変数宣言」セクションで説明されています。)

=対照的に、単に割り当てを実行します。

あなたの例では=、変数が(最初の行で)すでに宣言されているため、2行目で使用しているため、:=必要ありません。(実際には、エラー メッセージが表示されます::=変数の少なくとも 1 つが「新しい」、つまりまだ宣言されていない場合にのみ許可されます。)

于 2013-07-13T19:44:05.973 に答える
5

=代入演算子の 1 つです。

:=短い変数宣言です。

参照リンクでは、セマンティクスがまったく異なることがわかります。そのため、実際には「代わりに」という概念には少し問題があります。

おそらく役立つニーモテクニックのルール:

identifierI := expressionE

と同じです

var identifierI = expressionE

これはと同じです

var identifierI typeOf(expressionE)
identifierI = expressionE
于 2013-07-13T19:44:13.240 に答える