1
cmdOptionKana 2020-02-20 22:53:34 +08:00 1
没有最佳,只有这个:interface{}
不过一般人不写框架,其实需要用到泛型的地方很少了。 |
2
secondwtq 2020-02-20 23:59:20 +08:00 2
当然是有最佳的,就是换 Java
|
3
rdZZZ 2020-02-21 00:15:00 +08:00
不是说 go2 会加上范型么,一致等着呢
|
4
cmdOptionKana 2020-02-21 00:21:26 +08:00
@rdZZZ 传闻今年内实现
|
5
Akkuman 2020-02-21 00:24:34 +08:00 via Android
interface 加 reflect
|
6
hst001 2020-02-21 00:43:46 +08:00
不存在的,短期也不会实现,要么换语言要么忍
|
7
halo117 2020-02-21 02:32:51 +08:00 via iPhone
不存在的,短期内不要奢望这个特性,提高性能还是 go 开发团队首先要处理的,除非有一个能保证表达能力和性能的泛型方案出来,否则一直鸽着这个特性的
|
8
Cbdy 2020-02-21 07:30:12 +08:00 via Android
等 go2
|
9
scnace 2020-02-21 08:24:40 +08:00 via Android
自动生成
|
10
opentrade 2020-02-21 08:55:10 +08:00 via Android
我等了一年,只能选择离开,唯一割舍不下的是 goroutine
|
11
firemiles 2020-02-21 09:33:35 +08:00
想问下不支持函数重载,泛型怎么用,我常用泛型的场景就是函数重载支持多类型
|
12
justfortest 2020-02-21 09:43:56 +08:00 1
最佳解决办法就是不用泛型。。。
还是 python 爽啊,动态类型一时爽,一直动态一直爽 |
13
darknoll 2020-02-21 09:51:22 +08:00
又不是自己写框架,用啥泛型啊,完全不需要
|
14
rdZZZ 2020-02-21 10:00:20 +08:00
没泛型,interface 也不是不能用哈哈哈,只能等着了,而且泛型的需求好像也不是那么重要
|
15
hankai17 2020-02-21 10:07:00 +08:00
用泛型的场景多吗?
|
16
TangMonk 2020-02-21 10:10:59 +08:00
写一些公用库或者框架的时候泛型满重要的
|
17
ai277014717 2020-02-21 10:12:06 +08:00
昨天写包装接口请求时遇到这个问题。好像只能用 interface{}解决 https://gist.github.com/Kila2/789a84167b6c012147f621776c78a718
|
18
smallSoda 2020-02-21 10:35:17 +08:00
基本没用过泛型,绝大部分场景用不到,如果实在是要用,建议换个语言。没必要逼的 go 支持这个特性,每个语言都有自己的适用场景,指望一个语言变成全能不太现实。
|
19
salamanderMH 2020-02-21 11:37:22 +08:00
interface{}
|
20
reus 2020-02-21 11:54:05 +08:00
要灵活可以用 reflect 包,基本就是门动态语言了
要类型安全可以用代码分析和生成,有一点门槛 泛型可以解决上面两个的一些缺点,但也没法替代 |
21
Fitz 2020-02-21 11:54:14 +08:00
我宁愿多写几个一样的函数也不想看到 interface{} 满天飞
|
22
useben 2020-02-21 12:40:11 +08:00
最终变成 c++?
|
23
keepeye 2020-02-21 12:43:46 +08:00
没有代码洁癖 有没有泛型无所谓
|
25
guonaihong 2020-02-21 13:09:04 +08:00
interface{} 可以理解为运行时的泛型,这里有性能开销。
编译时的泛型,一起坐等 go2 吧。 |
26
Actrace 2020-02-21 13:21:56 +08:00
最后改着改着,突然发现这不就是 php 嘛。
|
28
laragh 2020-02-21 13:58:58 +08:00
PHP 原生可不支持这么高的并发。
|
29
las917vki 2020-02-21 14:08:26 +08:00
interface 是 CPP 里面的 RTTI
这是被所有 CPP 程序员看作垃圾的东西 |
30
cabing 2020-02-21 14:10:26 +08:00
比较废键盘。
|
33
Yoock 2020-02-21 20:18:17 +08:00 via iPhone
反射吧
|
34
tikazyq 2020-02-21 20:32:14 +08:00 via iPhone
反射
|
35
afpro 2020-02-21 20:36:49 +08:00
interface{} 最坑的是判断 nil 唉
|
36
firemiles 2020-02-22 04:45:02 +08:00
@secondwtq #32 写泛型不就是在编译时为类型生成方法吗,既然如此同名方法不可避免,这个应该是大部分使用场景吧
|
37
dhssingle 2020-02-22 09:29:45 +08:00 via iPhone 1
换 C#
|
38
lcj2class 2020-02-22 13:56:59 +08:00 via iPhone
无脑 interface{} ,性能有要求用代码生成 go generate
|
39
ice2neet 2020-02-24 15:38:45 +08:00
换语言
|
40
aliipay 2020-03-04 12:45:47 +08:00
希望楼主及有同样想法的尽早放弃这个想法
|
42
sunshinev 2020-05-06 15:42:57 +08:00
如果明确自己想要的东西,那么一般用不到 interface{} 就是要费尽把 struct 定义好。 不过很 base 的 struct 可能会有 interface{} 来解析 web 的数据,比如像定义一个 type Ret struct { Code: int Data:interface{} }
|