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>>优先于+?但为什么呢?
答案 0 :(得分:3)
这是语言哲学和可用性的差异。 将操作视为乘法/除以2的幂,即功能视图。其他语言将其视为基于位的运算符,它们在布尔运算符旁边分类。这更多地基于对常见数据类型/视图的感觉。