使用字串巨集
字串巨集是某些巨集呼叫的語法糖。解析器擴充套件語法
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
這個巨集將返回從它給出的字串解析的 BigInt
或 BigFloat
。
julia> big"1"
1
julia> big"1.0"
1.000000000000000000000000000000000000000000000000000000000000000000000000000000
這個巨集的存在是因為 big(0.1)
的行為並不像人們最初期望的那樣:0.1
是真正的 0.1
(1//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 物件在終端中呈現良好:
以及在瀏覽器中:
@html_str
此字串巨集構造 HTML 字串文字,在瀏覽器中很好地呈現:
@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
,但沒有任何花哨的格式化功能:
@v_str
此字串巨集構造 VersionNumber
文字。請參閱版本號以獲取它們的描述以及如何使用它們。
@MIME_str
此字串巨集構造單一型別的 MIME 型別。例如,MIME"text/plain"
是 MIME("text/plain")
的型別。