为什么golang移位运算符优先于加法? [关闭]

问题描述 投票:1回答:1
java:  System.out.println(1 + (9 - 1) >> 1);  // OUPUT: "4"
golang: fmt.Println(1 + (9 - 1) >> 1) // OUPUT: "5"

去:https://kuree.gitbooks.io/the-go-programming-language-report/content/31/text.html

Java:https://introcs.cs.princeton.edu/java/11precedence/

Python:http://www.mathcs.emory.edu/~valerie/courses/fall10/155/resources/op_precedence.html

C / C ++:http://en.cppreference.com/w/c/language/operator_precedence

似乎只有golang >>优先于+?但为什么?

go operator-precedence
1个回答
3
投票

这是语言哲学和可用性的差异。将操作视为乘法/除以2的幂,即功能视图。其他语言将其视为基于位的运算符,它们在布尔运算符旁边分类。这更多地基于通用数据类型/视图的意义。

© www.soinside.com 2019 - 2024. All rights reserved.