2016-09-23 3 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

그냥 호기심에, 왜 "역 슬래시" 당신이 코드 주석에서했던 것처럼? 아무도 "역상 solidus"에 대한 구글을 절대적으로 사용하지 않을 것입니다 -이 컨텍스트에서는 어쨌든 아닙니다. 나는이 단어가 존재한다는 것을 기억조차하지 않았습니다 ... 나는 어딘가에 대해 읽고 그것을 즉시 잊었습니다 : p –

답변

5

그것은 주변의 일이지만, 직접 매크로를 호출 할 수 - 매크로로보다는

@test_str("\\") 잘 작동 매크로 문자열로.

1

한 가지 방법은 문자열 매크로 자체의 일부로 기능을 구현하는 것입니다. 성능을 무시하면 쉽게 할 수있는 방법은 replace(s, "\\\\", "\\")입니다.

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

그런 다음

julia> test"\\" 
"\\" 

은 참으로 단일 백 슬래시입니다.

관련 문제