jullia中的模塊導入的語句主要有兩種
下面是一個模塊的例子
module MyModule
export x, y
x() = "x"
y() = "y"
p() = "p"
end
使用module定義一個模塊拂蝎,module和end的區(qū)間就是一個命名空間了。
導入一個模塊有兩種關(guān)鍵字 using和import
這兩個關(guān)鍵詞的區(qū)別是霎迫,import更像我們平時那個模塊斋枢。就像python的import
下面是幾種導入方式差異的表格
導入代碼 | 當前作用域?qū)肓四男┳兞浚?/th> | 可增加新方法的名字 |
---|---|---|
using MyModule |
All export ed names (x and y ), MyModule.x , MyModule.y and MyModule.p
|
MyModule.x , MyModule.y and MyModule.p
|
using MyModule: x, p |
x and p
|
|
import MyModule |
MyModule.x 、MyModule.y 和 MyModule.p
|
MyModule.x 知给、MyModule.y 和 MyModule.p
|
import MyModule.x, MyModule.p |
x 和 p
|
x 和 p
|
import MyModule: x, p |
x 和 p
|
x 和 p
|
using相當于把模塊里面的全局變量全部導入了瓤帚,最終的導入是以全局變量的形式描姚,相當于python的from xxx import *
而 import則是作為一個命名空間導入,這樣你就可以mymodule.x這樣來調(diào)用了戈次,并且import是和export對應(yīng)的轩勘。
另外import還有一個關(guān)鍵的地方是,可以你修改import導入的變量怯邪,但是你不能修改using的變量
這兩個模塊導入的方式绊寻,并不適用于你在本地編寫代碼。因為julia的包導入是到他自己的路徑里去尋找模塊的悬秉。
所以除非你在他指定的path里寫模塊澄步,不然是不能導入的。
模塊文件路徑
全局變量 LOAD_PATH
包含了調(diào)用 require
時 Julia搜索模塊的目錄和泌〈甯祝可以用 push!
進行擴展 :
push!(LOAD_PATH, "/Path/To/My/Module/")
將這一段代碼放在 ~\.juliarc.jl
里能夠在每次 Julia啟動時對 LOAD_PATH
擴展。此外武氓,還可以通過定義環(huán)境變量 JULIA_LOAD_PATH
來擴展 Julia 的模塊路徑梯皿。
擴展模塊路徑到你寫的模塊的位置之后,就可以使用import或者using正常導入了县恕。
這點就有點像go語言了索烹,早期也有類似的限制,就是代碼必須放到GOPATH里面弱睦。但是后面有了go mod 用作包管理之后百姓,只要用go mod初始化過在任何目錄都能正常使用包管理了。
include
正常我們用include就差不多了
include相當于代碼拼接况木,你導入的代碼會在include的位置執(zhí)行垒拢。
include("mycode.jl")
就比較簡單易用了。
include可以正常使用相對路徑之類的火惊,vscode上也支持路徑補全求类。