2016-09-23 55 views
2

是否可以將單個尾隨\字符傳遞給字符串宏?帶尾部反斜槓的字符串宏

macro test_str(s) 
    s 
end 

test"\\" # results in \\, that is two backslashes 
test"\" # does not parse ... the " is treated as escaped 
+0

您是否嘗試輸入「\」「?這可能是您要查找的內容 – jfish003

+0

@ jfish003不會只是一個雙引號字符 –

+0

只是好奇,爲什麼不直接在標題中說」反斜槓「就像你在代碼註釋中做的那樣?沒有人會爲了「反向修正」而谷歌 - 不管怎麼說,這並不是在這種情況下,我甚至都沒有記住這個詞的存在......我記得在某個地方讀過它並立即忘記它:p –

回答

5

這是一個解決辦法,但你可以直接調用宏 - 宏,而不是宏觀字符串

@test_str("\\")工作正常。

1

一種方法是將功能實現爲字符串宏本身的一部分。忽略性能,一個簡單的方法就是replace(s, "\\\\", "\\")

macro test_str(s) 
    replace(s, "\\\\", "\\") 
end 

然後

julia> test"\\" 
"\\" 

確實是一個反斜槓。