当我提供一个int作为time.Datefor的参数时month,它起作用(示例):time.Date(2016, 1, 1, 0, 0, 0, 0, time.UTC)为什么,当我尝试将 a 转换string为int然后使用该变量时,出现错误:cannot use mStr (type int) as type time.Month in argument to time.Date示例:https : //play.golang.org/p/-XFNZHK476
3 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
您必须将值转换为正确的类型:
import(
"fmt"
"time"
"strconv"
)
func main() {
var m, _ = strconv.Atoi("01")
// Now convert m to type time.Month
fmt.Println(time.Date(2016, time.Month(m), 1, 0, 0, 0, 0, time.UTC))
}
您将其转换为 type int,但是的第二个参数time.Date()是 type ,time.Month因此它会给您一个错误,表明您没有使用正确的类型。
繁华开满天机
TA贡献1816条经验 获得超4个赞
在第一个示例中,您将类型声明为 a time.Month
,它不是 int,而是 a time.Month
。在第二个示例中,类型是 int。如果您要进行演员表,就像在本例中一样,它会按您的预期工作;https://play.golang.org/p/drD_7KiJu4
如果在您的第一个示例中声明m
为 anint
或仅使用了:=
运算符(隐含类型为 int),您将得到与第二个示例中相同的错误。在这里展示; https://play.golang.org/p/iWc-2Mpsly
- 3 回答
- 0 关注
- 179 浏览
添加回答
举报
0/150
提交
取消