Search…
変数
Vの変数は:=演算子で宣言および初期化できます。Vの変数はこれ以外の方法では宣言できません。つまり、いかなる変数にも初期値が存在するということです。変数の型は、右辺の値から推測されます。Vの変数はデフォルトでイミュータブル(immutable: 値を改変できない)です。
1
age := 23 // int
2
name := 'Alice' // string
3
is_adult := age > 21 // bool
4
5
println(age_str) // 23
6
println(name) // Alice
7
println(is_adult) // true
Copied!
メモ: 変数の定義は、関数の内側でしか行なえません。Vにはグローバル変数もグローバルステートも存在しません。
変数の値を変更するには、変数がミュータブル(mutable: 改変可能)になっている必要があります。変数の宣言時にmutキーワードを用いることで、変数をミュータブルにできます。変数に新しい値を代入するには=を用います。
1
mut age := 20 // ミュータブルな変数ageを宣言して値20を代入する
2
println(age) // 20
3
age = 21 // ageに新しい値を代入する
4
println(age) // 21
Copied!
上のコードはmutキーワードがないとエラーになります(イミュータブルな変数の値は変更できない)。 v
1
fn main() {
2
age = 20
3
println(age)
4
}
Copied!
上のコードはコンパイルの段階でエラーになります(変数ageが宣言されていないため)。
1
fn main() {
2
mut age := 20 // ミュータブルなage変数を宣言して値20を代入
3
println(age) // 20
4
age := 21 // ERROR
5
}
Copied!
上のage := 21では、別のエラーがコンパイル時に発生します(変数ageが同じスコープ内で既に定義されているため)。非常にシンプルで覚えやすいルールです。値の宣言は:=で、以後の代入は=と覚えておきましょう。
Goと同様、不要な値は_で受け止めて無視できます。これは値を複数返す関数で使われるのが普通です【TBD】。
1
_, a := foo()
2
println(_) // ERROR: Cannot use `_` as value
Copied!

命名のルール

以下は、変数の命名で守るべきルールの一覧です。
  • 大文字を含んではならない(✖AlphaTest
  • 区切り文字にはアンダースコアを用いる(○hello_world
  • できるかぎり、意味の明快な名前を付けること
  • 名前に__を含んではならない
  • 名前に(種類を問わず)スペース文字を含んではならない
  • 名前が11文字を超えたら必ず_で区切らなければならない
上のルールはsnake_caseが由来です。Vではsnake_caseスタイルが用いられ、また推奨されます(読みやすく、書きやすく、理解しやすいため)。

正しい名前

1
boby
2
john_dads
3
myfamily_number
Copied!

正しくない名前

1
IamNotValid
2
new Make
Copied!