最受不了的就是 golang 中的 if...else 语句了

240 天前
 zhwguest

代码密度太低了,经常要这么写:

1: var val string
2: if ok {
3:	val = "okay"
4: } else {
5:	val = "fail"
6: }

即使优化一下,还有:

1: val := okay
2: if !ok {
3:	val = "fail"
4: }

要是 kotlin,swift, java, c++, c ,来得多快啊,尤其很多个这种条件初始赋值的时候,看版面,就像在搞笑似的。

9420 次点击
所在节点    Go 编程语言
92 条回复
DOLLOR
239 天前
@sagaxu

要惰性求值只能用 callback 了,不过 go 似乎没有箭头函数或者 lambda 表达,用起来依然很麻烦。🤣

func when[T any](value bool, trueCallback func() T, falseCallback func() T) T {
if value {
return trueCallback()
} else {
return falseCallback()
}
}
wangritian
239 天前
这种小事无所谓吧,需要的自己手搓,语言最重要的还是生态
zhwguest
239 天前
@wangritian #42 go 的生态没得说,那标准库杠杠的,底层设计的接口真的稳健无比。

相比起来 rust ,语言是优美,但基础库、接口规范,那简直,尤其是 crypto 这块,没法看啊。
KimiArthur
239 天前
@aloxaf dart 语法不是很简单明了吗?
logic2
239 天前
@zhwguest #20 python and js (或者 js 衍生的 ts 之类)
spritecn
239 天前
java 已经习惯 了这么写
```
if a
return a;
```
ikaros
239 天前
你可以用 rust 啊
A5SqQoWI1DOXm7Y7
239 天前
这都不算啥,关键是不同小版本之间还语言不一致,这就恶心了
ryalu
239 天前
如果这么写呢?
ufan0
239 天前
@aloxaf dart 越写越爽,有什么槽点吗?
Felldeadbird
239 天前
哈哈,这就不得不提 go 没有三目运算符的事情了。
Rehtt
239 天前
golang 的优点是不管水平高低写的代码都能一眼看懂 提高协作效率
uds9u32br
239 天前
虽然我挺喜欢 go 的,但是我寻思三目加上去也不太影响可读性啊。
supuwoerc
239 天前
@ryalu 这是谁的部将!
youyouzi
239 天前
我想着是上面代码也没毛病啊,就算不用三目,直接 if else 问题也不大啊
crayygy
239 天前
@uds9u32br 三目本身没有影响,但不能阻止有人往三目里面再多加几次三目,我看过几次我们的 C++ 代码里面这么写的,给人恶心坏了,宁可啰嗦一点。所以我喜欢 Java 和 Go ,虽然啰嗦,但是适合工程化,大家写出来的代码都差不多
fffq
239 天前
自己搓个三目 func ,多大点事
vfs
239 天前
跟你相反, 我就是喜欢它要求的这种。 感觉代码读起来很清整,赏心悦目的。
linxl
239 天前
@ryalu 优雅,有我的风范,充满了不可替代性,将塑料碗打造成铁饭碗!
fu82581983
239 天前
我在想 go 的设计者自己会不会也不爽某些写法,但又担心一直加特性破坏 go 设立之初的目标,然后内心十分纠结

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1106223

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX