Julia - グローバル変数とローカル変数
Global変数とLocal変数
変数にはglobal変数とlocal変数の2種類があります。 Juliaは動的型付け言語のため、基本的に変数の型は宣言しません。
ループや関数のスコープ内で宣言された変数は自動的にglobal変数となり、スコープ内で宣言されるとlocalとなります。 スコープ外からlocal変数にアクセスすることはできません。
x = 1 #これはglobal変数 for i = 1:10 y = 2 #これはlocal変数 end println(x) #これはOK。1が出力される。 println(y) #これはエラー。forループ外では変数yが定義されてないため
スコープ内からglobal変数にアクセスするには、globalキーワードが必須となります。 globalキーワードをつけないとglobal変数にアクセスできません。
x = 1 #global変数 y = 2 #global変数 for i = 1:10 println(x) #エラー。local変数xが定義されていないため。 println(global x) #globalキーワードをつけるとアクセスできる。出力は1 y = 3 #local変数yの宣言。global変数yとは別物 println(y) #globalキーワードがないのでlocal変数のyを出力。よって3 end println(y) #これはglobal変数のyを出力。よって2
データ型
Juliaではループや関数のスコープ内でのみ変数の型を指定することができます。
a::Int = 8 #エラー。スコープ外では型指定できない。 for i = 1:10 b::Int = 5 #Int型 c::Float64 = 2.2 #浮動小数点型はFloat64 s::String = "asdf" #文字列型はString end