Getting Started Julia

無論是使用預(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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容