请问 Go 语言学习起来曲线陡峭嘛,容易学习嘛?

2020-10-26 18:55:07 +08:00
 t2doo
中年老汉资质不佳,试从 PHP 转 Go,学习第 3 天。。。

目前的痛点是:func showName(a func(int, string), b, c string) func(string) stirng {}

这种函数传参可以传函数,然后传的函数还有返回值

为什么要这么设计?感觉这样很绕,不是太好理解呀。

麻烦各位会 Go 的朋友给推荐下看哪本书好,或是视频,怎样学 Go 容易吃进去,回帖万福。
5281 次点击
所在节点    程序员
32 条回复
catror
2020-10-26 18:58:28 +08:00
这个痛点和 Go 没关系吧,觉得难理解就不要这个设计自己的函数。最好的入门教程是官方的文档。
suomy
2020-10-26 19:02:55 +08:00
> 这种函数传参可以传函数,然后传的函数还有返回值

没看到传的参数有返回值
mepwang
2020-10-26 19:03:28 +08:00
你就想像成,能使用变量的地方,也能使用函数,就好理解了。这么复杂的设计,恐怕好多年都遇不上一次
t2doo
2020-10-26 19:10:58 +08:00
@mepwang 我还是多看看吧,可能是我想得太复杂了。。。

目前会得语言是 PHP 写网站和接口,python 写爬虫小工具,Java 基础会了不会 spring,不知道 Go 学了能干啥:doge
mepwang
2020-10-26 19:22:47 +08:00
@t2doo go 主要写高并发服务器端应用比较方便,常用的是 go 的并发机制
hand515
2020-10-26 19:26:05 +08:00
go 语法挺简单
ben1024
2020-10-26 19:38:24 +08:00
@t2doo swoole 能做的都可以用 go,主要应用在简单脚本,高频接口,低内存服务,长连接
php + go 配合挺香的
xjqxz2
2020-10-26 19:44:08 +08:00
GO 还行吧~ 不是很难的
rrfeng
2020-10-26 19:48:44 +08:00
函数是一种数据结构,自然也可以被另一个函数处理。
labulaka521
2020-10-26 19:49:45 +08:00
@suomy 我猜测他的意思可能是传入一个指针 然后返回后传入的指针就会被赋值
index90
2020-10-26 19:54:11 +08:00
你说的痛点是函数式编程,你可以先忽略,不是常用的
其他语法都很简单,重点是 channel,goroutine,看 sync.WaitGroup,errgroup,http 包源码,看看如何优雅关闭 channel,看看 ActiveObject,基本上就那几种用法了。
然后是面向接口的编程思想,如果你用 PHP 或者 Java 的 OOP 去套会很别扭的,我在这里花了比较长时间。
最后有余力可以看看函数式编程,Go 只是实现了一些功能,并不适合函数式编程。有些地方可以取巧,但是并不方便阅读,用的地方不多,也有可能我的 FP 道行太浅。
HuangLibo
2020-10-26 20:09:01 +08:00
这不就是一个闭包么
di94sh
2020-10-26 20:12:13 +08:00
这种 php 比 go 用的更多吧,动态语言到处都是这种吧
nonfu
2020-10-26 20:25:51 +08:00
这里有个写给 PHPer 的 Golang 入门教程,所有语法都有和 PHP 的类比,应该看起来更轻松些:

<https://xueyuanjun.com/books/golang-tutorials>

Go 入门挺简单的,比起 Java 、C 之类。
wd
2020-10-26 20:51:12 +08:00
动态语言转过去估计会比较痛苦。如果一直是强制类型的语言就还好。
qloog
2020-10-26 21:51:39 +08:00
书籍:Go 语言编程<许世伟>
然后就可以找个项目就可以干起来了,写 web 或者 api 的都可以,比如: https://github.com/1024casts/snake
pierreorz
2020-10-26 22:14:37 +08:00
会 JAVA 的学 GO 简直不要太容易 /我因为之前有个项目用 GO,逼着看了几天就会了,然后觉得比 JAVA 好用太多。不过目前没有项目练了。。。
qefrgty
2020-10-26 22:41:41 +08:00
很容易学,我原来速成过一遍,

过一遍基本知识也才五十几个笔记代码。
stupil
2020-10-26 22:43:28 +08:00
多用用。
lithbitren
2020-10-26 22:48:46 +08:00
感觉是学过的语言里最容易的

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

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

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

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

© 2021 V2EX