この質問によると、how-to-define-a-single-byte-variable-in-go-lang
ローカルスコープ:
var c byte = 'A'
そして
c := byte('A')
私の質問は:
これらは同じタイプ(byte
のエイリアスuint8
)と値です。例えば、
package main
import "fmt"
func main() {
var c byte = 'A'
d := byte('A')
fmt.Printf("c: %[1]T %[1]v d: %[2]T %[2]v c==d: %v", c, d, c == d)
}
出力:
c: uint8 65 d: uint8 65 c==d: true
それらは同等に効率的です。ランタイムコードは同じです。どちらもGoコンパイラーで簡単に理解できます。
短い変数宣言では、次の構文を使用します。
ShortVarDecl = IdentifierList ":=" ExpressionList .
これは、初期化式を含むが型を持たない通常の変数宣言の省略形です。
"var" IdentifierList = ExpressionList .
「最高」はスタイルの問題です。与えられたコンテキストでどちらがよりよく読みますか?
Alan AA Donovan・Brian W.Kernighan
簡潔さと柔軟性のため、ローカル変数の大部分を宣言して初期化するには、短い変数宣言を使用します。var宣言は、初期化式とは異なる明示的な型が必要なローカル変数、または変数に後で値が割り当てられ、その初期値が重要ではない場合に予約される傾向があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加