モジュールのレッスン (1/5)
変数と型
Go では、すべての変数はコンパイラに認識される 静的型 を持ちます。 宣言されている場合、変数の型を変更することはできません。この剛性はまったく異なります JavaScript または Python から — コンパイル時間を取得するために支払う代償です 実行時のエラーではなく、小さなバイナリで予測可能なエラー パフォーマンス。
2 種類の申告書
明示的なタイプの var
var name string = "Ada"
var age int = 36
var active bool(var active bool のように) 値を省略すると、変数は
その型の ゼロ値 — これについては次のレッスンで戻ります。
短い宣言 :=
関数内で := を使用できます。これは、
右側の表現。それは慣用的な形式であり、あなたが使用するものです
90% の場合:
name := "Ada" // string
age := 36 // int
pi := 3.14 // float64
active := true // boolすぐに出会える基本タイプ
| タイプ | 例 | メモ |
|---|---|---|
int | 42 | サイズは CPU (32 または 64 ビット) によって異なります。 |
float64 | 3.14 | 10 進リテラルのデフォルト |
string | "Ada" | UTF-8、不変 |
bool | true、false | 「真実」はなく、純粋なブール値のみ |
rune | 'A' | int32 のエイリアスは、Unicode コード ポイントを表します。 |
byte | 0x7F | uint8 のエイリアス |
int8/16/32/64、uint8/16/32/64、float32、complex64/128 もあります。
正確なサイズが必要な場合 (バイナリ解析、相互運用性など)。
複数の宣言
var ブロックまたは複数の := を使用して、複数の変数を宣言できます。
var (
name string = "Ada"
age int = 36
active bool
)
x, y := 10, 20
a, b, c := "a", 2, true // different types: no problem宣言されているが使用されていない変数
Go は厳密です。宣言されていても使用されない 変数はコンパイルです
警告ではなくエラーです。未使用の import にも同じことが当てはまります。
func main() {
x := 42
// error: x declared and not used
}ルールを一時的に無効にするには、_ (空白の識別子) を使用します。
_ = xあなたの番です
var を使用して、値 'Ada' を持つ文字列型の変数名を宣言し、それを出力します。
ヒントを表示
長い形式は `var <name> <type> = <value>` です。
3 回の試行後に解決策が利用可能になります
1 行で、:= を使用して、年齢に 36 を割り当て、市区町村に「Roma」を割り当て、両方を出力します。
ヒントを表示
複数の変数を一度に割り当てることができます: `a, b := 1, "due"`。
3 回の試行後に解決策が利用可能になります
次の宣言のうち、関数の外側に配置するとコンパイル エラーが発生するものはどれですか?
// (a)
var name string = "Ada"
// (b)
age := 36
// (c)
const PI = 3.14要約
- 静的型。
:=によって自動的に推論されるか、varで宣言されます。 :=関数内のみ。パッケージ レベルのみvar/const。- 未使用の変数とインポート = コンパイル エラー:
_を使用してそれらを沈黙させます。 int/float64/string/boolは、日常的なケースの 90% をカバーします。