最近在做需求
需要根据 shop ids 获取到对应的 额外信息
再根据 shop ids 获取对应的 item 信息
发现没有 lambda 表达式
居然还的一个个去封装。。
就很蛋疼啊。。
最近在做需求
需要根据 shop ids 获取到对应的 额外信息
再根据 shop ids 获取对应的 item 信息
发现没有 lambda 表达式
居然还的一个个去封装。。
就很蛋疼啊。。
1
iBugOne Dec 8, 2021 via Android
为什么需要 lambda 表达式呢?既然 func(){} 可以直接当表达式用(就像 JS function(){} 一样),直接用 func 不也挺好的?
DoSomething(func(x int) int { return x+1 }) |
2
Akiya Dec 8, 2021 何止是没有 lambda...
如何从 slice 里面移除一个元素:只需要找到这个元素的 index ,然后再把前后拼接成一个 slice 就可以了 如何从两个 int 取一个最大值呢:math.Max 只支持 float ,那么只需要把要比较的值转成 float 再把结果转回 int 就行了 如何从两个 slice 取出交集呢:这个就复杂了,需要自己写一个库,而且每个类型都得写一遍哦 |
4
aababc Dec 8, 2021
从我个人的感觉来说,go 更多的考量是开发 go 是否更容易,而不是使用 go 是否更容易。使用者的方便与否可能不是重点考虑的范畴。
|
5
partystart OP |
6
sagaxu Dec 8, 2021 via Android
less is more ,更少的语法糖,更多的代码量
|
7
matrix1010 Dec 8, 2021 via iPhone
你这看上去像是 ORM ,那可能是你的 ORM 不太行. 另外如果真的很多地方用并且模式差不多可以考虑写代码生成。This is the way
|
8
ktqFDx9m2Bvfq3y4 Dec 8, 2021 via iPhone 然而并不妨碍被国内追捧。
珍惜生命,只写 C#。 |
9
partystart OP @matrix1010
就很正常的 http/db 调用 根据 shop id 去 获取到商品 / extra/ item 信息 最后根据 shop id 聚合起来。。 三个 list 聚合起成一个 map 写了半天。。 |
10
matrix1010 Dec 8, 2021
@partystart 不太清楚你的实际情况,但如果让我写一个类似的接口差不多是这样。先用 ORM 查出数据与关联数据,shop = shop.query().where(id=1).withItems(func(q) {q.withextra()}).all(), 然后直接把这个 struct 转成 json
|
11
6IbA2bj5ip3tK49j Dec 8, 2021
楼上都偏题了,这是没有泛型导致的,和 lambda 没关系。
|
12
Buges Dec 8, 2021 via Android
@iBugOne 不能类型推导,还得加类型。js 是动态语言不用担心这个问题。现在有泛型了,你写个 filter 或 map 接口就知道有多难用了。
|
14
labulaka521 Dec 8, 2021
那就换个语言路,做之前不看吗?
|
15
QingXuJiaZhi Dec 8, 2021
|
16
EscYezi Dec 9, 2021 via iPhone
集合操作 funk 和 golinq 结合使用能省不少事,但是没范型还是差了点意思
|
17
Trim21 Dec 9, 2021 via Android
直接用匿名函数不也挺方便的
|
18
mind3x Dec 9, 2021 是不是对 lambda 有什么误解?
https://go.dev/ref/spec#Function_literals Golang 只是语法上比较 verbose 。并不是只有用 `=>`/`->`的才叫 lambda 。 |
19
ACEonly Dec 9, 2021
go 泛型出來了啊
|
20
yulon Dec 9, 2021
Go 不是有 lambda 也有闭包啊,我用了十年的假 Go ?
|
21
wellsc Dec 9, 2021
小而美
|
22
libook Dec 9, 2021
Go 是拿灵活性来换取生产效率的,特性少会使得实现方案少,当一个需求每个人的代码风格、实现方案都一样的时候,可以避免团队合作的很多问题。
Go 是一款用于精准解决企业生产问题的产品,不适合用于满足个人对技术方面的追求。 |
23
goxy Dec 9, 2021
|
24
littlewing Dec 9, 2021
来用 C++ 20 吧,要啥有啥
|
25
Akiya Dec 9, 2021
@goxy 我看了一下这个库,今天跟 leader 申请了,看能不能引入。
但是感觉代码还是很啰嗦,比如第一个例子,go 实现是 ```go From(cars).Where(func(c interface{}) bool { return c.(Car).year >= 2015 }).Select(func(c interface{}) interface{} { return c.(Car).owner }).ToSlice(&owners) ``` 但如果是 C#的话: ```cs owners = cars.Where(c => c.year >= 2015).Select(c => c.owner) ``` |
26
masterclock Dec 9, 2021
@Akiya 不仅啰嗦,而且全是 interface{}
|
27
qq1340691923 Dec 9, 2021
有泛型就好点了
|