LoginSignup
2
0

More than 5 years have passed since last update.

Mac で Julia #6 Modules

Last updated at Posted at 2018-08-24

前回に引き続き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を更新するからですね。

今日はこの辺で。

2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0