代码密度太低了,经常要这么写:
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 ,来得多快啊,尤其很多个这种条件初始赋值的时候,看版面,就像在搞笑似的。

java,c,c++也不错

喜欢 golang 喜欢的不得了

学会与自己和解,不要在意这些细节

google 的语言设计水平和 MS 比就是一坨翔(用 golang 和 dart 有感

楼上说得对, 试试 When(true, 1, 2)

imgur.com/b1VdtLo

前端表示很平和,和 js 逻辑一样

go 的设计思想确实神奇,缺少很多特性。一查为什么没有,固定回答基本都是 “你自己可以手搓,那样更加 clear”

#6 这个很多时候不能平替条件运算符。比如如果 v1 、v2 是有副作用的,或者要执行很耗时的计算,那就没法用 When 了。


另外 Go 就是 Google 做出来解决自己需求的,如果你觉得写起来难受,说明你的使用场景和 Google 那帮人不一样,就别硬用了。

这样不是挺好嘛,能把工作量提高啊。。。

这个确实很迷,还是保留 c++的三目运算符好一些。

推荐使用 java,没必要和自己过不去,用自己喜欢的就行了。

10 年前用 php 的时候也是有一群人喷不是强类型 = =| 其实不影响赚钱就行了,如果是自己的项目建议换自己喜欢的语言。

那要是来个说受不了其他语言作用域的呢

如无必要勿增实体

hhhh, golang 确实是这样。不过不得不说,除了这个 err 判断繁琐点,其他真的挺简洁了。

最简洁直观的:

var val = if ok "okay" else "fail"

或者

var val = ok match {
true => "okay",
false => "fail"
}

推荐试一下 C# 😊

这种小事情。。真不重要了。。

#17 这是啥语言啊?

var val string 和下面的两处 val =,都属于无必要又增实体

从 Go 语言的设计哲学出发考虑,引入三元表达式增加的复杂度远超带来的收益,增加了理解难度还带来了代码风格的问题(深度嵌套的写法一定会出现),普通的 if else 是最常用的写法,足够简洁,即使是初学者也能一眼看懂

代码密度高不一定是好事,越是简化的高级语法越难读,项目规模上来后简直是灾难
满屏的高度浓缩三元表达不头疼吗

学会与自己和解,不要在意这些细节,能解决问题就可以了