Go 语言入门疑惑

2018-11-30 13:45:08 +08:00
 Co1a

在正儿八经准备系统学习 GO 之前在 youtube 上观看了大致一周的学习视频,趁着最近 X 东购书满减,买了一本 Go 语言圣经,这下好了,完全一头雾水,之前自认为还能了解个大概,现在完全一脸懵逼,是因为非科班的原因?!?顺便求一下 Go 语言相关练习题

4670 次点击
所在节点    问与答
52 条回复
anonymous256
2018-11-30 19:35:32 +08:00
没有其它语言基础,最好不要碰 golang。
golang 中面向对象的设计和其它语言截然不同。golang 中的
struct 和 interface 实现了其它语言中[类,继承,多态]。
新人必然很难理解这种设计~建议从 python 入手,再试试 golang
mritd
2018-11-30 19:55:59 +08:00
相信我,基础语法搞完就开始造轮子就行了
SuperMild
2018-11-30 21:53:51 +08:00
你这种情况,不建议学 Go,建议先用 Python 或 C 写些东西,培养一下编程的感觉。
cgpiao
2018-11-30 22:21:09 +08:00
php 欢迎你
falcon05
2018-11-30 22:25:06 +08:00
我是看 go 语言实战 入门的,圣经节奏太慢了,这本快一些。
mangoDB
2018-11-30 23:35:40 +08:00
之前有其他语言学习经验吗?如果有的话,学起来不难。如果完全没有经验,估计会有点坎坷。
SorcererXW
2018-11-30 23:41:21 +08:00
瞄几眼基本语法, 就直接上 Leetcode 用刷题, 刷个几道题目就熟悉了, 就我而言, 这是熟悉新语言最快的方式
接下去就可以上手做项目了, 一些高级的特性跟着项目边做边学
Co1a
2018-12-01 10:37:06 +08:00
@falcon05 就是这个意思……慢但是详细,准备再买一本,go tour 其实就是基本语法,开始造轮子了
vsomeone
2018-12-01 12:25:57 +08:00
Go 其实和 C 很像。我猜可能设计者一开始有抱着开发一个更好用的 C 的目标
所以不如先把 C 用熟练吧
abcbuzhiming
2018-12-01 12:41:52 +08:00
@anonymous256 我这么说吧,Go 根本就不想实现什么“继承”,“多态”。Go 的核心思想是组合,所以才会有那么特别的接口实现。继承封装多态是过去传统的面向对象理论界喜欢的东西,工程界更关注的是组合,因为组合的耦合度是最低的。我建议如果要学 go,最好把继承封装多态这套东西全抛开
aa514758835
2018-12-01 14:21:24 +08:00
看视频+多敲敲,
anonymous256
2018-12-02 00:38:35 +08:00
@abcbuzhiming 不太同意你的看法。因为“封装” “多态”“继承”不是实现的目的,而是实现的结果。go 是一门面向对象的语言,体现了这些思想毫不奇怪,只是它看起来“不寻常”一些。

1. 封装是 go 自身的特性之一,比如函数名首字母大写才能在 package 外使用。通常而言,我只会把封装好的函数使用首字母大写,供其它的 package 调用。而其它我不希望别人调用的方法和结构体,首字母小写。go 为什么要搞大小写,说到底还是为更好的封装一个包。

2. go 的确没有继承的概念,"Composition over inheritance",它通过对象组合实现了多态行为和代码复用。多态行为也是它的典型特征,接口最容易体现多态。

https://spf13.com/post/is-go-object-oriented/
https://golangbot.com/polymorphism

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

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

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

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

© 2021 V2EX