​老师,在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



1

0 学习 · 1399 问题

查看课程