关于go语言切片 append用法的疑惑

本文通过一个示例程序探讨了Go语言中切片`append`操作的使用,特别是当向切片中添加元素时的行为。在案例中,我们看到即使在`append`后没有直接修改切片,由于切片是引用类型,其内部元素的改变依然会影响切片的输出。文章讨论了切片如何保存底层数组的引用,以及在追加元素时可能引发的底层数组扩容问题。
摘要由CSDN通过智能技术生成

package main

import "fmt"


func userModify(user []map[string]string, name string, nickname string, pwd string) {
    isExist:=false
    for _,v:=range user{
        //fmt.Print(k)
        if v["name"] == name{
            v["pwd"] = "888888"
            isExist = true
        }
    }
    if isExist == false{
        user_temp:=map[string]string{"name":name, "nickname":nickname, "pwd":pwd}
        user=append(user, user_temp)
    }
    fmt.Println(user)
}
func main() {

    var user []map[string]string
    user1:=map[string]string{ "name":"kongyl","nickname":"kongyl17","pwd":"111111"}
    user = append(user, user1)
    user2:=map[string]string{"name"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值