Julia - 如何在字符串中打印或写入反斜杠到文件中

3
我需要在Julia中将LaTeX指令写入文件中,这里是一个最简单的例子:
open("./file.tex", "w") do f
   foo::Int = 5
   # write(f, "$foo\hline \n")        - This is what I would like to do
   # write(f, "$foo \\ \n")           - This is another thing I want to do, and it works
   # write(f, "$foo \\\hline \n")     - My final goal is this -> 
                                        leads to ERROR: syntax: invalid escape sequence
end

你已经理解了我的要求,我想要一个包含反斜杠但不作为转义字符的字符串。 以下代码无法实现此目标:
julia> "\"  # Error

既不是这个

julia> "\\\hline"
1个回答

6
您可以编写"\\hline"以获得您想要的结果。通常规则是,两个\在输出字符串中会被转换为一个\,因此"\\\h"是一个错误,因为它被解析为"\\",然后"\h",而\h是一个无效的序列,但例如"\\\r"将被接受,因为\r是一个有效的转义序列(因此实际上你很幸运,\h是无效的,因为它让你发现了错误)。
此外,这意味着如果您想在输出中有something\\+newline,您必须编写""something \\\\\n""(五个\ - 四个用于获取"\\",第五个用于获得带有\n的新行)。
您可以使用原始字符串字面值来避免需要转义\,例如:raw"\hline"(但您将失去插值的能力)。请参见https://docs.julialang.org/en/latest/manual/strings/#man-raw-string-literals-1,了解以字符串结尾的\的一个特殊情况。
如果您经常使用LaTeX,则可能还对此包https://github.com/stevengj/LaTeXStrings.jl感兴趣。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接