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

243 天前
 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 ,来得多快啊,尤其很多个这种条件初始赋值的时候,看版面,就像在搞笑似的。

9444 次点击
所在节点    Go 编程语言
92 条回复
jeesk
242 天前
语法糖 越加越多就成💩,
jeesk
242 天前
没吐槽到重点:

毕竟 if else 完全可以优化

func result(bool2 bool, first any, two any) any {
if bool2 {
return first
} else {
return two
}
}
ufan0
242 天前
@CodingIran 很久没有见到如此认真对待的回复了,让我找回了很多年前的论坛感受,回复中的其中几项,在我刚接触 Dart 的时候蛮苦恼的。

2. 个人还是蛮喜欢这个设计的,看起来清晰,review 代码的时候能够一目十行。关于默认值只能是常量,我接触的几个静态语言似乎均是如此设计;

3. 关于 const ,我并非编译领域大牛,不知道为何如此设计,前期看到很头疼,用习惯了后多数能通过 IDE ( Alt + Enter )自动重构,倒也是习惯了;

4. 被困扰中,我也发现了该问题,并且此前在 Github 看过相关 issue ,目前仍为 open 状态;

5. 被困扰中,且 IDE 提示蛮鸡肋;

6. 此为做 UI 相关开发时候的取舍了,提升性能吧。换言之,如果不是开发 UI 相关,那么这个问题就不是问题了,我也在用 Dart 写后端。
DOLLOR
242 天前
@CodingIran
有点不对吧,dart 的默认参数、可选参数是放在方括号[]里,而不是大括号{}里,比如
String say(String from, String msg, [String device = 'carrier pigeon']) {/**/}

而大括号{}里的参数,相当于 python 的关键字参数(**kwargs )。

这倒也体现了 dart 函数参数声明的复杂,易混,难记。🐶
nxcdJaNnmyF9O90X
242 天前
@x1aoYao 月经贴 脑子有泡 就别用 go 啊 逼你用了吗 拉黑了 sbb
zhwguest
242 天前
@x1aoYao 千万别在意,有些人吧,就是不会讨论问题,上来就是人身攻击。被这种人拉黑了最舒服。
youngzy
241 天前
三元在单层的情况下还好,但挡不住有人喜欢套娃
如果我看到
` a ? b ? e : f : c ? d : e ? g : h `
我肯定心态直接爆炸

我宁可放弃使用单层的三元也不想去看别人写的套娃
Rickkkkkkk
241 天前
一种逻辑多种写法绝大多数情况下都是缺点,特别是写业务逻辑。

啰嗦不是问题
echoZero
241 天前
@youngzy 同感,三元表达式 大多数用起来没问题,少部分喜欢套娃,一个三元表达式把人看的一愣一愣的
ufan0
241 天前
@Livid #85 #63 xingjue 账号多次人身攻击,且没有缘由,看其历史回帖多数也充满不良言论。
kingcanfish
241 天前
@ryalu 你就说能不能跑吧!
Livid
240 天前
@ufan0 谢谢,那个账号已经被彻底 ban 。

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

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

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

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

© 2021 V2EX