Julia - キーボードから入力を受ける

環境

  • OS: ArchLinux
  • Julia 1.0.1

キーボードからの入力

Python3でいうところのinputC言語で言うところの scanf はJuliaではreadlineを使います。 ただし、readline("入力してください ")みたいに引数に入力を促す文を入れることはできません。

入力を促す文を表示させる場合、愚直に

print("入力してください ")
str = readline()

などとします。

julia> a = readline()
hoge
"hoge"

julia> a = readline()
hoge piyo
"hoge piyo"

julia> split(a) # 文字列を分割する。カンマ , 区切りのときは split(a, ",") とする
2-element Array{SubString{String},1}:
 "hoge"
 "piyo"

julia> a = readline()
1
"1"

julia> parse(Int, a) # 整数に変換
1

julia> parse(Float64, a) # 浮動小数点に変換
1.0

任意の個数の入力を受ける

特定の文字が入力されたら停止する方法

0 が入力されたら停止させる例

julia> x = []
0-element Array{Any,1}

julia> while true
           a = readline()
           a == "0" && break
           push!(x, a)
       end
hoge
piyo
fuga
0

julia> println(x)
Any["hoge", "piyo", "fuga"]

Ctrl-D で停止する方法

readline で入力待ちの状態で Ctrl-D をすると空の文字列 "" が代入されるので、それを終了条件に使う。

julia> x = []
0-element Array{Any,1}

julia> while (a = readline()) != ""
           push!(x, a)
       end
hoge
piyo
fuga
      # <- ここで Ctrl-D をしている

julia> println(x)
Any["hoge", "piyo", "fuga"]