【发布时间】:2021-06-05 16:27:21
【问题描述】:
我想用地图中的值创建一个结构。
这是一个sn-p:
log := &Log{
Facility: parts["facility"].(int),
Severity: parts["severity"].(int),
Timestamp: parts["timestamp"].(time.Time),
Hostname: parts["hostname"].(string),
AppName: parts["appName"].(string),
Client: parts["client"].(string),
Priority: parts["priority"].(int),
Message: parts["message"].(string),
}
问题是,如果其中一个值为 nil,则会发生恐慌。所以我想做这样的事情:
Facility: parts["facility"] != nil ? parts["facility"].(int) : 0
但这不是一个有效的语法。
我是否必须分别检查每个键才能处理 nil 情况?
【问题讨论】:
-
1>如果事先知道数据类型,那么您必须使用结构或结构映射 2> data,ok:=parts["facility"]; if ok && data!=nil {value=data.(int)}
标签: go