我正在尝试创建一个字符串文字,表示带有带引号的字段的 CSV 文件。预期的 CSV 如下所示:
"a","b"
"1","2"
Run Code Online (Sandbox Code Playgroud)
如果我想在字符串末尾添加换行符,则三重引号有效:
julia> """
"a","b"
"1","2"
"""
"\"a\",\"b\"\n\"1\",\"2\"\n"
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在末尾创建一个没有换行符的字符串,则会出现语法错误:
julia> """
"a","b"
"1","2""""
ERROR: syntax: cannot juxtapose string literal
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以解决这个问题?
顺便说一句,请注意,当您使用引号开始字符串文字时,没有语法错误:
julia> """"a","b"
"1","2"
"""
"\"a\",\"b\"\n\"1\",\"2\"\n"
Run Code Online (Sandbox Code Playgroud)
问题是这本身就是一个有效的字符串文字:
"""
"a","b"
"1","2"""
Run Code Online (Sandbox Code Playgroud)
当你跟随"另一个字符串时,解析器会认为“哇,你不能只用另一个字符串跟随一个字符串”。你可以强制它不考虑引用 after2作为关闭"""序列的一部分,通过转义它\:
"""
"a","b"
"1","2\""""
Run Code Online (Sandbox Code Playgroud)
在字符串的开头,没有这样的问题,因为前三个"字符用于开始字符串文字,后面的"必须只是字符串内的引号字符,这就是您想要的。
我不确定您认为最好的解决方案是什么。选项是:
"最后;"""放在单独的行上。后者对我来说似乎更好,但这是你的决定。
有关Triple-Quoted String Literals 的其他示例,请参阅Julia 文档。