Julia Lang 容易犯的錯誤

這些錯誤讓我付出了不少時間去解決:正則表達式

# SubStringubuntu

使用字符串區間獲取的字符串,是一種特殊的類型:SubString數組

rest_str = str[1:end]
chop_str = str[2:end]

這種類型同 String 不一樣,函數參數若是設置成 String, 傳入一個 SubString 的類型,就會報錯。ruby

固然,Julia 的函數能夠不聲明類型,這樣就不會出現這種問題,這個問題被深深的隱藏起來, 以致於上網搜索都沒有找到答案。函數

strip 也會產生 SubString網站

解決的辦法就是,全部這些表達式前面加 String()spa

function trim(str::String)::String
  return String(strip(str))
end

function rest(str::String)::String
  return String(str[2:end])
end

# r"str" 會按照正則表達式規則去編譯rest

爲了能獲取一種不會對 '$' 字符轉義的字符串表達形式,我開始選擇了 r"str" 的形式,但系統提示我編譯出錯,我才明白,這種形式的字符串是正則表達式專用,別的還用不了。因而用 raw"…" 形式代替。code

# """…""" 會對中間的 '$' 字符進行特殊處理。ip

這和大多數語言不一樣,這讓我不得不用 raw"…" 來標記跨行長字符串。

# 1.0 和之前的版本差異較大

之前聲明結構用 type 關鍵字,如今不行了,必須這麼用:

mutable struct Foo
  off::Int
  text::String
end

若是不用開始的 mutable 那麼這個結構是不能修改的,但不能修改的結構,彷佛沒什麼用。

# typealias 沒有了

如今這麼用:

Str = String
Table = Dict{String,String}

# Vector 就是一維數組

文檔裏處處出現這個詞,一直不明白是啥數據類型,最後明白了。

# 不要嘗試去本身編譯 Julia 的二進制文件,太麻煩了

直接從網站上下載二進制包,而後解壓使用:

ubuntu 默認安裝的是 0.45 版本,升級 repo 後,變成了 0.54.

# 字符數組轉換成字符串用 String,不能用 string

string 看似功能強大,但處理 Char[] 數組就會變成別的樣子。

# is_file => isfile, readstring => read

相關文章
相關標籤/搜索