struct的赋值中的属性怎么赋值

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
求大神指教
package main
type User struct {
name string
func main() {
test := map[int]User{1: User{"zhang", 10}, 2: User{"li", 9}}
test[1].name = "zhao"
fmt.Println(test)
这种方式也行,但是我要用协程,数据要共享,so,不能用以下方式
tmp := test[1]
tmp.name = "zhao"
test[1] = tmp
fmt.Println(test)
会报错 ./test3.go:16: cannot assign to test[1].name
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
tmp := test[1]
tmp.name = "zhao"
test[1] = tmp
这种用法在goroutine 中使用时在map 上加上锁也没有问题吧
test := map[int]*User{1: &User{"zhang", 10}, 2: &User{"li", 9}}
test[1].name = "zhao"
用指针的话应该更好一点吧,不过也存在data race,需要加锁
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
struct是值语义,test[1]取出来的是User的副本,对这个副本的修改不会影响到map里的User
所以有2个选择:
1,使用临时变量,每次取出来后再设置回去
tmp:=test[1]
tmp.name="zhao"
test[1]=tmp
2,map的value用User的指针类型
test := map[int]*User{}
test[1] = &User{"zhang", 10}
test[1].name = "zhao"
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
如果打算在协程中对共享的map进行写操作,那么你需要加锁保证安全性, 可以使用sync.RWMutex, 读的时候使用读锁,写的时候使用写锁。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
tmp:=test[1]
tmp.name="zhao"
test[1]=tmp
这样子就可以了吧
map里面的struct只取值,不能赋值tmp:=test[1].name这样子是可以的。
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:关于struts2的一个问题,如何传值给一个Bean中的(实体类)属性【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:656,502贴子:
关于struts2的一个问题,如何传值给一个Bean中的(实体类)属性收藏
struts2,我的一个bean里有一个属性,是一个实体类。如下public class Mail implements Serializable {
private U//←这个属性是个实体类User,是我自定义的类}我的Action类是这个↓public class mailAction extends ActionSupport {
private M//←这个Bean中包含了user实体类}我想用struts2的机制,从页面A.jsp传数据到这个mailAction中,为mail赋值,但是每次mail中的user属性都为null。我要怎么写这个页面?(比如我想点击A.jsp中的submit按钮提交数据到这个mailAction。页面部分要做什么准备)
51CTO学院11年行业品牌,1400万用户选择,中国专业IT技能学习平台,java.通过在线学习的方式,帮助广大技术人员实现技能提升,高薪就业的职业梦想,java.
你怎么传值的
别介啊,别沉啊,我搞了好久这破题真是坑死我了
类里面有没有set方法
可怜可怜我吧,怎么会这样。。我只好去百度知道了。。
先学会传string属性,再试试int,最后再试试传对象....一步步来.....新手跟着教程坐的话就把源代码抄一遍就行了,没理解原理前靠自己臆想写是铁定错误百出的...    ------德玛上单最虎B!不服来辩,来辩打死!
登录百度帐号推荐应用}

我要回帖

更多关于 c struct 赋值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信