Shu*_*g b -2 operator-overloading go
我已经进行了一段时间的 Go 之旅,我刚刚注意到这行代码:-
today := time.Now().Weekday()
switch time.Saturday {
case today + 0:
fmt.Println("Today.")
case today + 1:
fmt.Println("Tomorrow.")
case today + 2:
fmt.Println("In two days.")
default:
fmt.Println("Too far away.")
}
Run Code Online (Sandbox Code Playgroud)
如果 Go 不支持运算符重载,我如何使用“+”运算符来增加一天?
time.Now().Weekday()返回一个类型的值time.Weekday,它是一个int. today+1有效,因为 1 是一个无类型常量,它的类型是根据上下文确定的。在这种情况下,today和1都是 类型time.Weekday。
还要注意,由于它的定义方式,time.Saturday 是 6,所以time.Saturday == today+2有效,但time.Saturday+2不会匹配任何有效的工作日。
| 归档时间: |
|
| 查看次数: |
186 次 |
| 最近记录: |