用 go 做开发坑好多,各位是怎么用的。

2014-01-28 16:56:46 +08:00
 9
比如用关联数组, map[string]interface{}, 最简单的循环操作却报错,要加上类型断言 --- 一次两次还好,每次都这样搞快崩溃了!关联数组存在不同类型的数据不是很正常的吗,求经验

另外 map 的相关函数相当少(其实根本没有?!),想实现 map 去重,map 合并的功能,找遍文档找不到,这不是相当基本的需求么。

...
5833 次点击
所在节点    Go 编程语言
33 条回复
davepkxxx
2014-01-29 10:48:46 +08:00
我试用了一段时间之后就继续回去玩scala了,go吸引我的就只剩多返回值这一点了。
zonyitoo
2014-01-29 12:26:58 +08:00
我用了一阵子Go发现很多坑,不过依然在坚持用,因为它很像C,用起来挺亲切的。不过相比一直喜爱的Python,Go用得实在是憋屈
luikore
2014-01-29 12:45:18 +08:00
@wayn3h0 你是没写过处理大量 json 的程序吧... 一堆 for 面条代码过后都看不出是干嘛的指的就是那种"方便"的代码
Yiner
2014-01-29 14:56:45 +08:00
@tonyseek Python本来就不是强类型~
9
2014-01-29 15:40:44 +08:00
@wayn3h0 刚看官方博客 http://blog.golang.org/json-and-go ,里面这个例子跟我之前想描述的差不多:


f = map[string]interface{}{
"Name": "Wednesday",
"Age": 6,
"Parents": []interface{}{
"Gomez",
"Morticia",
},
}

m := f.(map[string]interface{})


for k, v := range m { //每次都这样搞一下
switch vv := v.(type) {
case string:
fmt.Println(k, "is string", vv)
case int:
fmt.Println(k, "is int", vv)
case []interface{}:
fmt.Println(k, "is an array:")
for i, u := range vv {
fmt.Println(i, u)
}
default:
fmt.Println(k, "is of a type I don't know how to handle")
}
}
9
2014-01-29 16:01:24 +08:00
@Livid v2ex 其他地方该改的都改过了,只有这个回复框万年不变,难道没有支持代码编辑的打算吗,程序员的论坛不支持代码编辑真的很难受。只能通过第三方的嵌入这是一个好主意吗。

像这种做之前就可以预见必定大受欢迎的功能 (为何这么肯定?统计贴代码的帖子有多少就知道),为何不做呢?
congjunfeng
2014-01-29 16:07:20 +08:00
@9 如果用go重构PHP的项目,还用PHP的思路的以及业务逻辑的话,真的很容易就掉坑里面了。我没研究过PHP,不过这两个相差太大,一定不要用PHP的思路来做,不然很难看到Go好的地方,而PHP好的地方,go不一定有,所以就一定会感觉越来越坑。。。。
congjunfeng
2014-01-29 16:08:30 +08:00
@9 我用JSON都是用的struct,还真没用过map
9
2014-01-29 16:55:58 +08:00
@congjunfeng json 结构是不确定的,用 struct 可能要经常变动,所以就用 map 了
reusFork
2014-01-29 17:06:47 +08:00
sodatea
2014-01-29 20:21:39 +08:00
@Yiner python 是强类型、动态类型语言。请自行搜索以搞清楚「强类型 | 弱类型」、「静态类型 | 动态类型」这几种概念的具体含义……
wayn3h0
2014-01-29 20:36:15 +08:00
@9 重复性的功能,写成一个函数,用断言或建议看一下reflect包
@luikore 还是给个例子看看
a7a2
2016-12-30 17:32:39 +08:00
写吧 多写点 以后就可以复制粘贴了

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

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

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

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

© 2021 V2EX