W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
~r/foo/i
相當于使用一個二進制數(shù)和一個字符列表作為參數(shù)調(diào)用sigil_r
:iex> sigil_r(<<"foo">>, 'i')
~r"foo"i
我們可以通過sigil_r
獲取~r
印記的文檔:
iex> h sigil_r
...
我們也可以簡單地在sigil_{identifier}
模式之后添加需要實現(xiàn)的函數(shù)來自定義我們的印記.例如,讓我們用~i
印記來返回一個整數(shù)(使用修飾符n
可以將其變?yōu)樨摂?shù)):
iex> defmodule MySigils do
...> def sigil_i(string, []), do: String.to_integer(string)
...> def sigil_i(string, [?n]), do: -String.to_integer(string)
...> end
iex> import MySigils
iex> ~i(13)
13
iex> ~i(42)n
-42
印記也可以在宏的幫助下進行編譯時工作.例如,在編譯源代碼時,Elixir中的正則表達式會被編譯成一個高效的表示方法,在運行時就可以跳過此步驟.如果你對此感興趣,我們建議你學習宏的知識,并了解印記是如何在Kernel
模塊中被實現(xiàn)的(sigil_*
函數(shù)就是在那里定義的).
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: