英文:
go lang map not throwing null pointer
问题
为什么这个程序没有抛出任何空指针异常
https://go.dev/play/p/37reql6Pdb5
即使 m 是空的,仍然在 m 上进行访问。
英文:
why this program is not throwing any null pointer exception
https://go.dev/play/p/37reql6Pdb5
eventhough m is null, still accessing on m.
答案1
得分: 7
请看这段代码片段:
package main
import "fmt"
func main() {
var m map[string]string = nil
fmt.Println(m) // 输出: "map[]"
}
这是一种预期的行为,因为nil
在许多类型的变量中充当零值,包括(但不限于)maps和slices。
此外,在Golang中没有"Exception"这样的东西。您可以使用以下语法检查映射中是否存在某个值:
value, found := m["key"]
其中found
变量指示值是否存在于映射中。
英文:
Check out this code snippet:
package main
import "fmt"
func main() {
var m map[string]string = nil
fmt.Println(m) // output: "map[]"
}
This is an intended behavior since nil
acts as zero value for many types of variables, including (but not limited to) maps and slices.
Also, there's no such thing in Golang as "Exception". You can check if a value exists in your map using this syntax:
value, found := m["key"]
where the found
variable indicates if the value exists in the map.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论