1
Carseason 2022-03-16 02:13:29 +08:00
赶紧冲
|
2
Trim21 2022-03-16 04:44:31 +08:00
发现 goland 对泛型支持有 bug ,能正常编译的代码报错,先降回 1.17 了
|
3
Trim21 2022-03-16 04:59:56 +08:00
|
5
Trim21 2022-03-16 05:46:46 +08:00
@Carseason #4 哎,试了一下现在这个写法的确可以。想当然了。编辑了一下,现在应该能触发 goland 的 bug 了
|
6
Trim21 2022-03-16 05:48:06 +08:00
type alias 或者 type definition 都能触发
|
9
iyear 2022-03-16 07:35:33 +08:00
终于发了,看着 milestone 一点点到底
|
10
tulongtou 2022-03-16 08:19:39 +08:00
范型也太丑了
|
11
FakNoCNName 2022-03-16 08:43:15 +08:00
本来大项目的代码就不容易阅读,这下子到处抽象更晦涩了
|
12
darksword21 2022-03-16 08:47:05 +08:00 via iPhone
起床更
|
14
eudore 2022-03-16 09:02:42 +08:00
升级完成
|
15
macscsbf 2022-03-16 09:15:21 +08:00
goland 还有些 bug, 这里放在 goland 里会报红 但是我能编译
type Binding[S types.Stringer, P any] interface { Name() S Bind(P, any) error } type testBinding[S types.Stringer, P *http.Request] struct { } func NewTestBinding[S types.Stringer, P *http.Request]() Binding[S, P] { return &testBinding[S, P]{} } func (t testBinding[S, P]) Name() S { return "name" } func (t testBinding[S, P]) Bind(p P, a any) error { return nil } |
16
macscsbf 2022-03-16 09:16:12 +08:00
types.Stringer 是自定义的一个类型
type Stringer interface { ~string } |
17
macscsbf 2022-03-16 09:18:46 +08:00
func IndexOf[T comparable](collection []T, target T) int {
for i, t := range collection { if t == target { return i } } return -1 } |
18
zhs227 2022-03-16 09:19:45 +08:00
goland 一般要再等一个版本更新才能解决提示报错问题。
|
19
rrfeng 2022-03-16 09:25:52 +08:00 1
不是 gopls 的 bug 吗
|
21
Hanggi 2022-03-16 09:40:58 +08:00
感觉第三方库又要爆发一波了
|
22
hingbong 2022-03-16 09:44:08 +08:00
以上 bug 在 2022.1 eap 均无复现,看来适配了
|
23
Mohanson 2022-03-16 09:46:24 +08:00
看了 release note, 我的关注点全在 fuzz 上了, generics 反而感觉没什么亮点
|
24
yukunyi 2022-03-16 09:53:25 +08:00
马上升级试试~~~
|
25
xlsepiphone 2022-03-16 09:58:39 +08:00
brew 还没更新,懒得自己手动下载。
|
26
keepeye 2022-03-16 10:01:57 +08:00
从 rc1 就开始用了 并未遇到什么 bug
|
27
yongchiu 2022-03-16 10:58:06 +08:00
goland 怎么升级了,我的一直无法升级到最新版本
|
28
acoldfox 2022-03-16 12:33:35 +08:00
我们鼓励在有意义的地方使用泛型,但在生产环境中部署泛型代码时,请谨慎行事
|
29
tairan2006 2022-03-16 14:03:36 +08:00
有点坑,目前还不推荐在生产环境使用,估计要等 1.19
|
30
components 2022-03-16 14:24:06 +08:00
|
31
xnotepad 2022-03-16 14:44:51 +08:00
goland 目前是有问题,只能暂时换回 vscode 用用了
|
32
MoYi123 2022-03-16 18:08:12 +08:00
有没有大哥教一下,为什么这样写是不对的?
package main import "fmt" func Max[T comparable](x, y T) T { if x > y { return x } return y } func main() { fmt.Println(Max(1, 2)) } .\draft.go:6:5: invalid operation: x > y (type parameter T is not comparable with >) |
33
keepeye 2022-03-16 18:10:37 +08:00 1
@MoYi123 comparable 不能用于比较大小,你得自己定义一个类型哦。。比如:
type NumOrdered interface { int | int32 | int64 | float32 | float64 } |
35
bthulu 2022-03-16 18:26:00 +08:00 1
梦想破灭了, 为什么要加泛型呢, 不是说好的不加的么, 骗子
|
36
useben 2022-03-16 18:51:54 +08:00
2021.3.3goland 还不支持 go workspace.....
|
37
kongkongyzt 2022-03-16 19:38:14 +08:00
@useben +1....这个特性对我还挺重要的
|
38
tairan2006 2022-03-16 21:26:05 +08:00
@useben 测一下 eap 支持不
|
39
jefferycao 2022-03-16 22:35:33 +08:00
看到有说范型丑..难道 interface 就不丑么
|
40
Akitora 2022-03-17 09:18:39 +08:00
Goland 还会报错...
```go func Contain[T comparable](a []T, b T) bool { for _, t := range a { if t == b { return true } } return false } ``` |
41
seakingii 2022-03-17 09:46:53 +08:00
我喜欢泛型,赶紧升级一下
|
42
Oktfolio 2022-03-17 09:53:53 +08:00
@xlsepiphone homebrew 看了下,每次 go 更新大版本都要延迟很久,各种依赖 go 的包都要改版本号...
|
43
seakingii 2022-03-17 09:57:43 +08:00
升级前,GOLAND 会提示错误,但实际能运行
升级到 2022.1 EAP 后,不提示错误了 |
44
wwqgtxx 2022-03-18 11:54:52 +08:00
golang2021.3.4 发布了,已经不提示错误了
|