使用字串巨集

字串巨集是某些巨集呼叫的語法糖。解析器擴充套件語法

mymacro"my string"

@mymacro_str "my string"

然後,像任何其他巨集呼叫一樣,替換為 @mymacro_str 巨集返回的任何表示式。Base Julia 附帶了幾個字串巨集,例如:

@b_str

此字串巨集構造位元組陣列而不是字串 。編碼為 UTF-8 的字串內容將用作位元組陣列。這對於與低階 API 介面非常有用,其中許多 API 使用位元組陣列而不是字串。

julia> b"Hello World!"
12-element Array{UInt8,1}:
 0x48
 0x65
 0x6c
 0x6c
 0x6f
 0x20
 0x57
 0x6f
 0x72
 0x6c
 0x64
 0x21

@big_str

這個巨集將返回從它給出的字串解析的 BigIntBigFloat

julia> big"1"
1

julia> big"1.0"
1.000000000000000000000000000000000000000000000000000000000000000000000000000000

這個巨集的存在是因為 big(0.1) 的行為並不像人們最初期望的那樣:0.1 是真正的 0.11//10)的 Float64 近似,並且促進 BigFloat 將保持 Float64 的近似誤差。使用巨集將 0.1 直接解析為 BigFloat,減少了逼近誤差。

julia> big(0.1)
1.000000000000000055511151231257827021181583404541015625000000000000000000000000e-01

julia> big"0.1"
1.000000000000000000000000000000000000000000000000000000000000000000000000000002e-01

@doc_str

此字串巨集構造 Base.Markdown.MD 物件,這些物件在內部文件系統中用於為任何環境提供富文字文件。這些 MD 物件在終端中呈現良好:

StackOverflow 文件

以及在瀏覽器中:

StackOverflow 文件

@html_str

此字串巨集構造 HTML 字串文字,在瀏覽器中很好地呈現:

StackOverflow 文件

@ip_str

此字串巨集構造 IP 地址文字。它適用於 IPv4 和 IPv6:

julia> ip"127.0.0.1"
ip"127.0.0.1"

julia> ip"::"
ip"::"

@r_str

此字串巨集構造 Regex 文字

@s_str

此字串巨集構造 SubstitutionString 文字,它與 Regex 文字一起使用,以允許更高階的文字替換。

@text_str

這個字串巨集在精神上類似於 @doc_str@html_str,但沒有任何花哨的格式化功能:

StackOverflow 文件

@v_str

此字串巨集構造 VersionNumber 文字。請參閱版本號以獲取它們的描述以及如何使用它們。

@MIME_str

此字串巨集構造單一型別的 MIME 型別。例如,MIME"text/plain"MIME("text/plain") 的型別。