無論是使用預(yù)編譯二進(jìn)制文件還是從源代碼編譯,Julia安裝都很簡單。按照https://julialang.org/downloads/上的說明下載并安裝Julia 。
學(xué)習(xí)和試驗(yàn)Julia的最簡單方法是通過雙擊Julia可執(zhí)行文件或julia從命令行運(yùn)行來啟動(dòng)交互式會(huì)話(也稱為read-eval-print循環(huán)或“REPL”):
$ julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.1 (2018-09-29)
_/ |\__'_|_|_|\__'_| |
|__/ |
julia> 1 + 2
3
julia> ans
3
要退出交互式會(huì)話,請(qǐng)鍵入CTRL-D(按下Control / ^鍵和鍵一起d),或鍵入exit()。在交互模式下運(yùn)行時(shí),julia顯示橫幅并提示用戶輸入。一旦用戶輸入了完整的表達(dá)式,例如1 + 2,并且命中輸入,交互式會(huì)話將評(píng)估表達(dá)式并顯示其值。如果將表達(dá)式輸入到帶有分號(hào)分號(hào)的交互式會(huì)話中,則不會(huì)顯示其值。ans無論是否顯示,變量都綁定到上次計(jì)算的表達(dá)式的值。該ans變量僅在交互式會(huì)話中綁定,而不是在以其他方式運(yùn)行Julia代碼時(shí)。
要評(píng)估在源文件file.jl中編寫的表達(dá)式,請(qǐng)編寫include("file.jl")。
要以非交互方式在文件中運(yùn)行代碼,可以將其作為julia命令的第一個(gè)參數(shù):
$ julia script.jl arg1 arg2...
如示例所示,以下命令行參數(shù)將julia被解釋為程序的命令行參數(shù)script.jl,并在全局常量中傳遞ARGS。腳本本身的名稱作為全局傳遞PROGRAM_FILE。請(qǐng)注意,ARGS當(dāng)使用-e命令行上的選項(xiàng)(請(qǐng)參閱julia下面的幫助輸出)給出Julia表達(dá)式時(shí),也會(huì)設(shè)置該值,但PROGRAM_FILE它將為空。例如,要只打印給腳本的參數(shù),您可以這樣做:
$ julia -e 'println(PROGRAM_FILE); for x in ARGS; println(x); end' foo bar
foo
bar
或者您可以將該代碼放入腳本并運(yùn)行它:
$ echo 'println(PROGRAM_FILE); for x in ARGS; println(x); end' > script.jl
$ julia script.jl foo bar
script.jl
foo
bar
所述--分隔符可以被用于旨在用于從用于朱莉婭參數(shù)的腳本文件單獨(dú)的命令行參數(shù):
$ julia --color=yes -O -- foo.jl arg1 arg2..
Julia可以使用-p或--machine-file選項(xiàng)以并行模式啟動(dòng)。-p n將啟動(dòng)一個(gè)額外的n工作進(jìn)程,同時(shí)--machine-file file將為文件中的每一行啟動(dòng)一個(gè)worker file。file必須通過無密碼ssh登錄訪問定義的計(jì)算機(jī),|并將Julia安裝在與當(dāng)前主機(jī)相同的位置。每個(gè)機(jī)器定義都采用這種形式[count*][user@]host[:port] [bind_addr[:port]]。user默認(rèn)為當(dāng)前用戶,port標(biāo)準(zhǔn)ssh端口。count是在節(jié)點(diǎn)上生成的worker的數(shù)量,默認(rèn)為1. optional bind-to bind_addr[:port]指定其他worker用于連接此worker的IP地址和端口。
如果您有運(yùn)行Julia時(shí)要執(zhí)行的代碼,可以將其放入~/.julia/config/startup.jl:
$ echo 'println("Greetings! 你好! ??????")' > ~/.julia/config/startup.jl
$ julia
Greetings! 你好! ??????
...
有多種方法可以運(yùn)行Julia代碼并提供選項(xiàng),類似于可用于perl和ruby程序的選項(xiàng):
julia [switches] -- [programfile] [args...]
開關(guān) | 描述 | |
---|---|---|
-v, --version | 顯示版本信息 | |
-h, --help | 打印此郵件 | |
-J, --sysimage | <file>啟動(dòng)給定的系統(tǒng)映像文件 | |
-H, --home <dir> | 設(shè)置julia可執(zhí)行文件的位置 | |
--startup-file={yes no} | 加載 ~/.julia/config/startup.jl | |
--handle-signals={yes no} | 啟用或禁用Julia的默認(rèn)信號(hào)處理程序 | |
--sysimage-native-code={yes no} | 如果可用,請(qǐng)使用系統(tǒng)映像中的本機(jī)代碼 | |
--compile | d-modules={yes no} | 啟用或禁用模塊的增量預(yù)編譯 |
-e, --eval <expr> | 評(píng)估 <expr> | |
-E, --print <expr> | 評(píng)估<expr>并顯示結(jié)果 | |
-L, --load <file> | <file>立即加載所有處理器 | |
-p,--procs {N auto} | 整數(shù)值N啟動(dòng)N個(gè)額外的本地工作進(jìn)程; auto啟動(dòng)與本地CPU線程數(shù)(邏輯核心數(shù))一樣多的工作程序 | |
--machine-file <file> | 在上面列出的主機(jī)上運(yùn)行進(jìn)程 <file> | |
-i | 互動(dòng)模式; REPL運(yùn)行并且isinteractive()是真的 | |
-q, --quiet | 安靜的啟動(dòng):沒有橫幅,抑制REPL警告 | |
--banner={yes no auto} | 啟用或禁用啟動(dòng)橫幅 | |
--color={yes no auto} | 啟用或禁用彩色文本 | |
--history-file={yes no} | 加載或保存歷史記錄 | |
--depwarn={yes no error} | 啟用或禁用語法和方法棄用警告(error將警告轉(zhuǎn)換為錯(cuò)誤) | |
--warn-overwrite={yes no} | 啟用或禁用方法覆蓋警告 | |
-C, --cpu-target <target> | 限制CPU功能的使用最多<target>; 設(shè)置為help查看可用選項(xiàng) | |
-O, --optimize={0,1,2,3} | 設(shè)置優(yōu)化級(jí)別(如果未指定,則默認(rèn)級(jí)別為2;如果不使用級(jí)別,則默認(rèn)級(jí)別為3) | |
-g, -g <level> | 啟用/設(shè)置調(diào)試信息生成的級(jí)別(如果未指定,則默認(rèn)級(jí)別為1;如果不使用級(jí)別,則默認(rèn)級(jí)別為2) | |
--inline={yes no} | 控制是否允許內(nèi)聯(lián),包括覆蓋@inline聲明 | |
--check-bounds={yes no} | 始終或從不發(fā)出邊界檢查(忽略聲明) | |
--math-mode={ieee,fast} | 禁止或啟用不安全的浮點(diǎn)優(yōu)化(覆蓋@fastmath聲明) | |
--code-coverage={none user all} | 計(jì)算源代碼行的執(zhí)行次數(shù) | |
--code-coverage | 相當(dāng)于 --code-coverage=user | |
--track-allocation={none user all} | 計(jì)算每個(gè)源行分配的字節(jié)數(shù) | |
--track-allocation | 相當(dāng)于 --track-allocation=user |