R 4.0.0 为原始字符串引入了一种新语法:
r"(raw string here can contain anything except the closing sequence)"
但是 R 3.xx 中的相同构造产生了语法错误:
错误:“r”(asdasd)“”中出现意外的字符串常量
这是否意味着解释器在 R 4.0.0 中发生了变化。?
如果是这样 - R 4.0.0。提供一种机制来定义自定义函数,例如foo"()"
?
R 4.0.0 为原始字符串引入了一种新语法:
r"(raw string here can contain anything except the closing sequence)"
但是 R 3.xx 中的相同构造产生了语法错误:
错误:“r”(asdasd)“”中出现意外的字符串常量
这是否意味着解释器在 R 4.0.0 中发生了变化。?
如果是这样 - R 4.0.0。提供一种机制来定义自定义函数,例如foo"()"
?
不,目前这是不可能的(我也不认为它很快就会成为可能)。
这是新闻项目:
有一种用于指定原始字符常量的新语法,类似于 C++ 中使用的语法:
r"(...)"
使用...
任何不包含序列的字符序列)"
。这使得编写包含反斜杠或单引号和双引号的字符串变得更容易。有关更多详细信息,请参阅?Quotes
。
https://cran.r-project.org/doc/manuals/r-devel/NEWS.html
然后从?Quotes
:
原始字符常量也可以使用类似于 C++ 中使用的语法:
r"(...)"
使用...
任何字符序列,但它不能包含结束序列)"
。分隔符对[]
和{}
也可以使用,并且R
可以用来代替r
. 为了增加灵活性,可以在开始引号和开始分隔符之间放置多个破折号,只要在结束分隔符和结束引号之间出现相同数量的破折号即可。
https://github.com/wch/r-source/blob/trunk/src/library/base/man/Quotes.Rd
这git
是添加此功能的提交的(SVN 补丁的镜像):
https://github.com/wch/r-source/commit/8b0e58041120ddd56cd3bb0442ebc00a3ab67ebc