老师,在8分06秒的时候,我想知道为什么删除元素后,name,ok不能用冒号等于,而是用等于
来源:3-4 Map
过气的阎罗
2021-03-03 21:19:07
老师,在8分06秒的时候,我想知道为什么删除元素后,name,ok不能用冒号等于,而是用等于
1回答
深度复制
2021-03-07
:= 是一种短变量声明的方式,它采用name := expression的形式。name的类型由expression的类型确定。
如
i :=100 //一个int类型的变量。
需要注意的是:=表示声明(并赋值),而=表示赋值。
name,ok :=m["name"] 包含两层含义
(1)声明变量name和ok, name和ok的类型由右边的Map决定
(2)m["name"]这种通过下标方式访问Map中的元素输出两个值,第一个值:如果map中不存在键"name",则得到对应的零值,第二个值是bool值,用来报告键"name"是否存在。
后面的name,ok =m["name"]为什么用=号而不用:=的原因是,之前已经用:=声明过相同的变量了,变量不能重复声明。
特别需要说明的是,如果:=的左边有多个变量,:=的左边至少有一个变量没有声明过。
例子
package main
import "fmt"
func main() {
a, b :=100,200
b, c := 300,400
fmt.Println(a,b,c)
}
输出: 100,300,400
相似问题