![]() |
1
6
在页面中 http://www.digitalmars.com/d/1.0/expression.html 一般来说,优先级越高,优先级越低。要获得特定的优先级,请遵循解析器规则。
|
![]() |
2
2
至少,这是Walter(d Creator)在 this mailing list thread . |
![]() |
3
1
据我所知,目前没有一个很好的D运算符优先表。您可以在表达式上查看该页。( http://www.digitalmars.com/d/1.0/expression.html )然后根据语法分解出你所拥有的任何表达式,并找出它,但显然这不像一张表那么好或简单。 然而,C和C++代码既保证是具有相同行为的有效D代码,也不会编译。所以,只要你的表达式将是有效的C或C++,你就可以只使用C/C++运算符优先级表: http://www.cppreference.com/wiki/operator_precedence 因此,虽然目前还没有一个很好的D操作符优先级表,只要您理解C/C++操作符优先级,就不应该有任何意外。 编辑: 对于特定于d的运算符,在“表达式”页中, 与其他赋值运算符的优先级相同
可能与==
与<优先级相同
与>>优先级相同
可能与*
我相信这就是新的D操作符的完整列表。在这些情况下,我会说“可能”,因为它看起来像是由Mark Rushakoff的答案中引用的实现(在这种情况下,如果不相同,优先级非常接近给定的运算符)。但是,我不确定这是否真的有关系,因为很难以一种完全不明确的方式混合其中的一些内容(尤其是 是 和 在里面 ) 一般来说,如果你坚持C/C++优先规则,你应该是好的。如果有的话,由于严格的转换规则,D将比C/C++更具限制性,所以我不认为你会有任何额外的歧义。不过,建议在D文档中添加一个显式的运算符优先表可能是一个好主意。 |
![]() |
4
0
谷歌没有发现太多,猜测D是一种有点利基的语言。 但是,我确实在 thread 在从C++到D的转换中,D的创建者说:“转换是我保持操作符优先级相同的原因之一。” 因此,如果您可以找到C++运算符优先级,则应该能够使用它作为D |
![]() |
5
0
在可能的情况下,D使用C运算符优先级。 |
![]() |
Divyat · D语言的BNF语法形式[闭口] 7 年前 |
![]() |
hiropon · 有没有办法用Dlang同时分配多个变量? 7 年前 |
![]() |
Jonathan Wilbur · 从D中的抽象类运行单元测试? 7 年前 |
![]() |
thinwybk · 如何使用D访问linux字符设备? 7 年前 |
![]() |
user3069488 · 震波。D-未定义标识符(Dlang) 7 年前 |
![]() |
Dmitry Bubnenkov · 错误:实例化模板实例时出错 8 年前 |
![]() |
Matt Smith · 正在转义对局部变量的引用 9 年前 |
![]() |
StillLearningToCode · 将字符串解析为D中的标记 10 年前 |
![]() |
Suliman · D?的TUI(文本用户界面)? 10 年前 |