V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  SimbaPeng  ›  全部回复第 2 页 / 共 17 页
回复总数  323
1  2  3  4  5  6  7  8  9  10 ... 17  
2023-01-19 14:47:38 +08:00
回复了 alexkuang 创建的主题 分享发现 荷兰 Gov 根据要求公开身份验证 App 的源代码
总有拿可读性来尬吹小学生代码的
2023-01-12 13:15:54 +08:00
回复了 Jim2Chen 创建的主题 程序员 问一下,大家平时没活(摸鱼)的时候,都在干嘛?
还有没活的时候?
2023-01-12 10:25:38 +08:00
回复了 googlehub 创建的主题 程序员 招募开发合作小伙伴一起做项目
请问你的价值体现在哪?
2022-10-21 12:23:54 +08:00
回复了 blue7wings 创建的主题 Go 编程语言 关于 web 项目结构的规划
2022-09-17 13:18:58 +08:00
回复了 fxjson 创建的主题 程序员 关于 go 日志中记录 request id 的疑问
把带上各种基础字段的 logger 对象传入 context ,下层方法用的都是上层传下来带上了各种基础字段的 logger
2022-08-31 18:06:19 +08:00
回复了 wenzaiquan199 创建的主题 问与答 为安全问题,早上公司热烈讨论
@newmlp 谁告诉你需要破解 https 才能拿到数据?
美剧《人生切割术》
2022-06-24 17:43:09 +08:00
回复了 johnkiller 创建的主题 程序员 人生中的第一个 PR 被 merge 了
恭喜恭喜
2022-05-28 19:01:05 +08:00
回复了 lovepplforever 创建的主题 加密货币 炒币亏完了
luna 抄底不是自由了吗?
luna 这 2 天让不少人自由了阿
@hello2090 200W 以上还搞技术本身就是个伪命题
摸摸唱
2022-02-11 09:57:35 +08:00
回复了 312ybj 创建的主题 生活 结婚这件大事
恭喜恭喜(恰🍋)
2022-01-26 20:04:03 +08:00
回复了 kilims 创建的主题 职场话题 tx 新瓜,怎么看
顶一波勇士!
2022-01-13 17:23:35 +08:00
回复了 BryantBa 创建的主题 Go 编程语言 请教一个 Go 的小白问题
@Tinywan

golang 只有值传递
2021-11-26 12:23:38 +08:00
回复了 superfatboy 创建的主题 Go 编程语言 初学 golang,小白求解惑!
@Mitt 在我看来你所谓的“两种表达”,描述的本质是不同,楼上有些回复的本意是:range 会 产生迭代对象的副本,所以无法修改原对象。事实是 range 确实会产生 迭代对象的副本,但这不是 LZ 不能用 v 来修改原对象中元素的原因。

有的甚至扯到深浅拷贝,认为 range 产生了深拷贝,但其实 range 只会 产生 切片结构的拷贝,底层引用的数组还是同一个。
2021-11-26 02:02:01 +08:00
回复了 superfatboy 创建的主题 Go 编程语言 初学 golang,小白求解惑!
```
func main() {
a := []int{1, 2, 3}
for i, v := range a {
if i == 0 {
a[2] = 4
}
fmt.Println(v)
}
}
```

那些说是因为 range 的是 list 的副本的,自己运行一下这段代码。copy 的是切片,又不是底层数组。
2021-11-26 01:31:48 +08:00
回复了 superfatboy 创建的主题 Go 编程语言 初学 golang,小白求解惑!
我真的怀疑楼上的回复者,真的会 Golang ?

什么 range copy 了 list ,range 策略,深拷贝浅拷贝?能不能不要在这里误人子弟?

这里的关键就是 v := range list 是个赋值操作,将 list 元素赋值给 v ,golang 里只有值传递,所以 list 元素在复制给 v 的时候必然产生了拷贝。而结构体是值类型,没有引用的对象,所以是拷贝整个结构体,直接修改 v 的属性就是修改拷贝的结构体,所以原结构体属性并不会改变。

同理,但凡你将一个结构体赋值给一个新变量,然后修改新变量的字段,都不会对原结构体有任何影响。

这跟你用没用 range 一点关系都没有。

如果你的 list 里存的是结构体的指针,range 的时候一样会产生拷贝,不过拷贝的是指针结构,底层引用的结构体不会产生拷贝,所以你解指针修改字段的时候,修改的是同一个结构体。但如果将一个新的指针赋值给 v ,原 list 的元素依然不会被改变。

最后总结一句话,golang 只有值传递。
2021-06-18 17:36:49 +08:00
回复了 SimbaPeng 创建的主题 Go 编程语言 关于 docker-compose 搭建 golang 本地开发环境的问题
@lance86 COPY 所有代码之前会先 COPY go.mod 然后 go mod download,依赖是有缓存的
1  2  3  4  5  6  7  8  9  10 ... 17  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   987 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 39ms · UTC 22:39 · PVG 06:39 · LAX 15:39 · JFK 18:39
Developed with CodeLauncher
♥ Do have faith in what you're doing.