前回に引き続きJuliaについてです。
ドキュメントに沿って試していきます。
...脱線気味です、今回はモジュールについて
Summary of module usage
module MyModule
export x, y
x() = "x"
y() = "y"
p() = "p"
end
usingやimportの呼び出し方によってスコープに導入されるもの(What is brought into scope)とメソッドの拡張に利用可能なもの(Available for method extension)が変わるそうです。
MyModule.jlとして保存しました。
あれ?モジュールが読み込めない...
julia> using MyModule
ERROR: ArgumentError: Package MyModule not found in current path:
- Run `Pkg.add("MyModule")` to install the MyModule package.
Stacktrace:
[1] require(::Module, ::Symbol) at ./loading.jl:817
julia>
怒られちゃいました。モジュールのパス(perlでいうところのuse lib的な)の指定が必要だそうです。
Module file paths
push!
コマンドを使うそうです。
julia> push!(LOAD_PATH,"/PATH/TO/MOD_DIR")
4-element Array{String,1}:
"@"
"@v#.#"
"@stdlib"
"/PATH/TO/MOD_DIR"
julia> using MyModule
julia> MyModule.x()
"x"
できましたー。追加するpush!
関数に!マークが付いているのはLOAD_PATHを更新するからですね。
今日はこの辺で。