[Julia] [ARGS] コマンドライン引数で実行を変えてみた(基礎編)
Juliaの紹介
何のメモ?
Juliaのコードを実行する際のコマンドライン引数をコード内で受け取ったりした時のメモ書き。
基礎編。
どんな時に役立つの?
外部から値を指定してJuliaでの処理結果を動的に変える
コマンドライン引数って?
Windowsだとコマンドプロンプトとか、MacだとTerminalとかのコマンドラインからプログラムを実行する際に、
プログラム実行時に渡してあげるオプションやデータの事。
実行しようとしているプログラムファイル内の関数などに渡す値。
まずPythonで書くと
Pythonだと標準ライブラリの sys で実現できる。
Python環境: version 3.6.5
実行コマンド: python3 args.py hoge 100
import sys
args = sys.argv
print(args) #['args.py', 'hoge', '100']
print(type(args)) #<class 'list'>
for ind, arg in enumerate(args):
msg = '第{0}引数-> {1} : {2}'.format(ind + 1, arg, type(arg))
print(msg)
#第1引数-> args.py : <class 'str'>
#第2引数-> hoge : <class 'str'>
#第3引数-> 100 : <class 'str'>
実行コマンドの python3
から後の実行ファイル名から引数として sys.argv
に格納されています。
Juliaでは
Julia環境: version 1.1.0
コマンドライン引数は ARGS
に格納されている。
実行コマンド: julia args.jl hoge 100
println(ARGS) #["hoge", "100"]
println(typeof(ARGS)) #Array{String,1}
for (ind, arg) in enumerate(ARGS)
t = typeof(arg)
msg = "第$(ind)引数-> $arg : $t"
println(msg)
#第1引数-> hoge : String
#第2引数-> 100 : String
end
ここで注意しないといけないことが2つ。
インデックスの開始値が異なる
Pythonだとリストやイテレータの開始インデックスは 0 から始まるが
Juliaでは 1 始まり。
そのため、Pythonで引数のインデックスに +1
しているが、Juliaでは +1
せずともすんでいる。
引数としての解釈位置が異なる
Pythonだと実行コマンドで python3
の次からファイル名も含めて引数と見なされるが
Juliaでは、実行ファイルよりも後ろからが引数としてスクリプトで操作できる。
Author And Source
この問題について([Julia] [ARGS] コマンドライン引数で実行を変えてみた(基礎編)), 我々は、より多くの情報をここで見つけました https://qiita.com/risa0320/items/1b675f9dcda18c58e66c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .