Julia 字符串插值的默认分隔符是什么?
看起来,Julia 字符串插值的默认分隔符是什么?,julia,Julia,看起来,“,”,“$”,“/”都用作分隔符,但“quot不是 x = "1" "$x,x", "$x$x", "$x/1", "$x_1" 有关于这个的文档吗?我相信这是因为x_1在Julia中是一个有效的变量名,所以它试图将该变量的值插入字符串中 我认为这是因为x_1在Julia中是一个有效的变量名,所以它试图将该变量的值插入字符串中 $之后最短的完整表达式作为其值要插入字符串的表达式 内部工作在中进行了解释,可总结为: 字符串插值的工作方式实际上完全由Julia定义。发生的情况是解析器(
“,”,“$”,“/”
都用作分隔符,但“quot
不是
x = "1"
"$x,x", "$x$x", "$x/1", "$x_1"
有关于这个的文档吗?我相信这是因为x_1在Julia中是一个有效的变量名,所以它试图将该变量的值插入字符串中 我认为这是因为x_1在Julia中是一个有效的变量名,所以它试图将该变量的值插入字符串中 $之后最短的完整表达式作为其值要插入字符串的表达式 内部工作在中进行了解释,可总结为: 字符串插值的工作方式实际上完全由Julia定义。发生的情况是解析器(在FemtoLisp中)扫描代码并找到一个由双引号分隔的字符串文本。如果在字符串中找不到unescaped$,它只会创建一个字符串文本本身-ascistring或UTF8String,具体取决于字符串的内容。另一方面,如果字符串有一个unscaped$,它将字符串文本的解释推送到str julia宏,该宏生成一个表达式,该表达式通过连接字符串文本和插值来构造所需的字符串。这是一个很好的优雅方案,让解析器不用担心插值之类的事情 我可以猜到
,##############代码>是,
,)
,]
,}
和
分别是表达式的结束标记,$
指定下一次插值的开始。
$之后最短的完整表达式作为其值要插入字符串的表达式
内部工作在中进行了解释,可总结为:
字符串插值的工作方式实际上完全由Julia定义。发生的情况是解析器(在FemtoLisp中)扫描代码并找到一个由双引号分隔的字符串文本。如果在字符串中找不到unescaped$,它只会创建一个字符串文本本身-ascistring或UTF8String,具体取决于字符串的内容。另一方面,如果字符串有一个unscaped$,它将字符串文本的解释推送到str julia宏,该宏生成一个表达式,该表达式通过连接字符串文本和插值来构造所需的字符串。这是一个很好的优雅方案,让解析器不用担心插值之类的事情
我可以猜到,##############代码>是,
,)
,]
,}
和
分别是表达式的结束标记,$
指定下一次插值的开始。如果要确保插值已终止,只需在名称周围使用(),即“$(myname)”。如果标识符后面跟有一些Unicode字符,则这一点很重要,在某些情况下,这些字符可能会被更改为允许在解析器中作为标识符字符。如果要确保插值已终止,只需在名称周围使用(),即“$(myname)”。如果标识符后面跟有一些Unicode字符,这一点很重要,在某种程度上可能会被更改为允许在解析器中作为标识符字符。这不再是真的了——现在Julia解析器实际上自己处理所有的插值。这是明智地允许插入表达式等本身包含字符串文字的事情的唯一方法。但是优秀的GitHub考古学:-)@StefanKarpinski你能编辑我的回复以提供最新的回复吗?这不再是真的了-Julia解析器现在实际上自己处理所有的插值。这是明智地允许插入表达式等本身包含字符串文字的事情的唯一方法。但是优秀的GitHub考古学:-)@StefanKarpinski您能编辑我的回复以提供最新的回复吗?