package
0.0.0-20240429050328-3be44a187b12
Repository: https://github.com/robertwang/golang_study.git
Documentation: pkg.go.dev

# README

Go每日一题

今日(2023-01-21) 的题目如下

以下代码输出什么?

package main

import (
	"fmt"
)

func main() {
	var a, b float64 = 1.0, 4.0
	fmt.Println(a | b)
}
  • A:5
  • B:+Inf
  • C:panic
  • D:不能编译
🔑 答案解析:

正确答案:D

| 操作是按位或操作符,它的操作数只能是整数,而上面这道题的操作数是 float64,因此编译不通过。

这是 Go 规范的内容 https://docs.studygolang.com/ref/spec#Arithmetic_operators

+    sum                    integers, floats, complex values, strings
-    difference             integers, floats, complex values
*    product                integers, floats, complex values
/    quotient               integers, floats, complex values
%    remainder              integers

&    bitwise AND            integers
|    bitwise OR             integers
^    bitwise XOR            integers
&^   bit clear (AND NOT)    integers

<<   left shift             integer << integer >= 0
>>   right shift            integer >> integer >= 0

可以通过 play 在线编译看看:https://play.studygolang.com/p/lLMbGE_ajrg

验证

VSCode 会提示以下错误

# command-line-arguments
./main.go:9:14: invalid operation: operator | not defined on a (variable of type float64)