在Julia語言中,亦是將某個值與之相關聯(或綁定)的名字。它可以用來保存一個值、計算結果等。Julia提供了靈活的變量命名策略,(相比Python還要靈活)。變量名大小寫不敏感,並且不包含語義。
# 將1賦值給變量xjulia> x = 33# 使用變量x的值進行基本計算julia> x * 26
# 使用變量x的值進行平方計算julia> x ^ 29
# 變量名大小寫敏感,x與X不是一個變量,上面我們對變量x進行了賦值,但並沒有對X進行賦值,所以程序會報錯變量X未定義Xjulia> XERROR: UndefVarError: X not defined
# 可以使用UTF-8編碼的unicode字符作為變量名julia> 變量="中文變量""中文變量"# 可以通過輸入\delta tab來輸入julia> δ="1.0""1.0"# 可以通過輸入\alpha tab來輸入julia> α=1.01.0可以通過輸入\alpha tab來輸入\hat tab_2julia> â2=2.02.0在定義變量時,不能使用已經在Julia中使用的內置變量或函數,否則會報錯:
julia> piπ = 3.1415926535897...
julia> pi = 5.0ERROR: cannot assign a value to variable MathConstants.pi from module MainStacktrace: [1] top-level scope at REPL[13]:1
julia> sqrt(4)2.0
julia> sqrt=3ERROR: cannot assign a value to variable Base.sqrt from module MainStacktrace: [1] top-level scope at REPL[15]:1
julia> coscos (generic function with 13 methods)
julia> cos(10)-0.8390715290764524
julia> cos=5ERROR: cannot assign a value to variable Base.cos from module MainStacktrace: [1] top-level scope at REPL[19]:1合法的變量名
在Julia中,變量的名字必須以英文字母(A-Z或a-z)、下劃線(_)或編碼大於00A0 的Unicode 字符的一個子集開頭。具體來說指的是,Unicode 字符分類中的Lu/Ll/Lt/Lm/Lo/Nl(字母)、Sc/So(貨幣和其他符號)以及一些其 它像字母的符號(例如Sm 類別數學符號中的一部分)。變量名的非首字符還允許使用驚嘆號!、數 字(包括0-9 和其他Nd/No 類別中的Unicode 字符)以及其它Unicode 字符:變音符號和其他修改標 記(Mn/Mc/Me/Sk 類別)、標點和連接符(Pc 類別)、引號和少許其他字符。
像+ 這樣的運算符也是合法的標識符,但是它們會被特別地解析。在一些語境中,運算符可以像變 量一樣使用,比如(+) 表示加函數,語句(+) = f 會把它重新賦值。大部分Sm 類別中的Unicode 中 綴運算符,像⊕,則會被解析成真正的中綴運算符,並且支持用戶自定義方法(舉個例子,你可以 使用語句const ⊗ = kron 將⊗ 定義為中綴的Kronecker 積)。運算符也可以使用修改標記、引號和上 標/下標進行加綴,例如+̂ₐ″ 被解析成一個與+ 具有相同優先級的中綴運算符。唯一明確禁止的變量名稱是內置關鍵字的名稱:
julia> else = trueERROR: syntax: unexpected "else"Stacktrace: [1] top-level scope at none:1
julia> else = 123ERROR: syntax: unexpected "else"Stacktrace: [1] top-level scope at none:1
julia> try = 1.0ERROR: syntax: unexpected "="Stacktrace: [1] top-level scope at none:1命名規範
雖然Julia 語言對合法名字的限制非常少,但是遵循以下這些命名規範是非常有用的:
• 變量的名字採用小寫。
• 用下劃線(_)分隔名字中的單詞,但是不鼓勵使用下劃線,除非在不使用下劃線時名字會非 常難讀。
• 類型(Type)和模塊(Module)的名字使用大寫字母開頭,並且用大寫字母而不是用下劃線分 隔單詞。
• 函數(Function)和宏(Macro)的名字使用小寫,不使用下劃線。
• 會對輸入參數進行更改的函數要使用! 結尾。這些函數有時叫做「mutating」或「in-place」函 數,因為它們在被調用後,不僅僅會返回一些值還會更改輸入參數的內容。
關於命名規範的更多信息,可查看代碼風格指南。