Julia 的數據結構

Julia 的字符串十分好用,有許多現成的函數庫:數據結構

 

start_with end_with first lastless

substring chop函數

 

Julia 的 && 和 || 用途十分普遍,由於它能作分支語句前綴:設計

 

a > 0 || error "a less zero"字符串

a == 1 && return a1()編譯器

a == 2 && return a2()string

 

因爲 Julia 並不檢查 && || 鏈接的語句的返回值,由於這些語句一旦執行,就不會在返回什麼值,要麼輸出錯誤信息,要麼跳出函數。it

 

Julia 的 Array 能夠用於大多數的數據類型:List Vecio

 

由於它能夠從頭部或尾部插入元素,也能從尾部或頭部彈出元素。這明顯是鏈表的特性,這樣的話隨機訪問,效率是否低下呢?編譯

 

Dict 能夠做爲 Table Tree Hash 由於它也是泛型定義的:

 

typealias Dict<String,String> Table

typealias Dict<String,Table> Tree

 

Julia 的 IO 設計也能讓咱們輕鬆使用 Buffer:

 

Julia 內置了許多函數,能夠方便的直接使用。另外可使用相似動態語言的風格,沒必要聲明變量的類型,函數參數的類型,返回的類型。這是由於 Julia 內置了一個強大的類型推導系統,它把這些缺失的類型都用本身的方式推導成本身能使用的類型,這也能夠看出 Julia 對本身類型系統的自信。

 

固然,在必要的地方聲明類型,也會減小編譯器的負擔,讓代碼運行起來更符合本身的預期。

 

我一直不明白 Julia 沒有設計 switch ... case 語句的緣由,它既然有那麼好的宏設計系統,又追求代碼的簡潔,爲什麼對這種明顯讓代碼更簡潔的表達方式視而不見呢?

 

關鍵字 function 的設計更讓我迷惑,明明能夠用更短的 func,def, sub, fn 做爲關鍵字,爲什麼用這麼長的呢?這隻能說明 Julia 的核心語法設計的決定權在某個有強迫症的傢伙身上。

 

另一種必要的數據結構是 struct, 在之前的版本中,沒有這個關鍵字,有另一種聲明結構的語句:

 

mutable struct A {

name::Int

}

 

用於那麼能夠修改的結構,問題是不能修改的結構有啥用?難道 tuple 就是用這種不能修改的結構設計的?

相關文章
相關標籤/搜索