Go 语言从入门到实战
蔡超
Mobvista 技术副总裁兼首席架构师,前亚马逊(中国)首席软件架构师
48919 人已学习
新⼈⾸单¥59
课程目录
已完结/共 55 讲
第一章:Go语言简介 (4讲)
第二章:基本程序结构 (4讲)
第三章:常用集合 (3讲)
第四章:字符串 (1讲)
时长 16:47
第五章:函数 (2讲)
第六章:面向对象编程 (4讲)
第七章:编写好的错误处理 (2讲)
第八章:包和依赖管理 (2讲)
第九章:并发编程 (7讲)
第十章:典型并发任务 (5讲)
第十一章:测试 (3讲)
时长 11:48
时长 07:12
时长 06:15
第十二章:反射和Unsafe (3讲)
时长 08:18
时长 08:03
第十三章:常见架构模式的实现 (2讲)
第十四章:常见任务 (4讲)
时长 04:27
时长 05:14
第十五章:性能调优 (4讲)
第十六章:高可用性服务设计 (5讲)
Go 语言从入门到实战
登录|注册
留言
68
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 05 | 变量、常量以及与其他语言的差异
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | Go语言课程介绍
02 | 内容综述
03 | Go语言简介:历史背景、发展现状及语言特性
04 | 编写第一个Go程序
05 | 变量、常量以及与其他语言的差异
06 | 数据类型
07 | 运算符
08 | 条件和循环
09 | 数组和切片
10 | Map声明、元素访问及遍历
11 | Map与工厂模式,在Go语言中实现Set
12 | 字符串
13 | Go语言的函数
14 | 可变参数和defer
15 | 行为的定义和实现
16 | Go语言的相关接口
17 | 扩展与复用
18 | 不一样的接口类型,一样的多态
19 | 编写好的错误处理
20 | panic和recover
21 | 构建可复用的模块(包)
22 | 依赖管理
23 | 协程机制
24 | 共享内存并发机制
25 | CSP并发机制
26 | 多路选择和超时
27 | channel的关闭和广播
28 | 任务的取消
29 | Context与任务取消
30 | 只运行一次
31 | 仅需任意任务完成
32 | 所有任务完成
33 | 对象池
34 | sync.pool对象缓存
35 | 单元测试
36 | Benchmark
37 | BDD
38 | 反射编程
39 | 万能程序
40 | 不安全编程
41 | 实现pipe-filter framework
42 | 实现micro-kernel framework
43 | 内置JSON解析
44 | easyjson
45 | HTTP服务
46 | 构建RESTful服务
47 | 性能分析工具
48 | 性能调优示例
49 | 别让性能被锁住
50 | GC友好的代码
51 | 高效字符串连接
52 | 面向错误的设计
53 | 面向恢复的设计
54 | Chaos Engineering
55 | 结课测试&结束语
登录 后留言

全部留言(68)

  • 最新
  • 精选
Aliliin
如果你使用的是 vs code 编辑器的话,安装好了go的相关配置,会在测试文件中看到 ` run test | debug test `的提示,你点击 `run test` 之后在下面看不到 `t.Log()` 输出的内容就请把 `"go.testFlags": ["-v"],` 这行代码加入到你的 settings.json 文件中(设置 Workspace Settings。打开 .vscode/settings.json)

作者回复: 👍!非常好的分享!

2019-03-05
9
70
附件均衡
补充一个小发现 在命令行里运行测试文件的时候 go test -v xxx_test.go 才能输出 t.Log 里的文字

作者回复: 感谢补充。多数IDE里这个参数是默认打开的,所以在IDE里你直接可以看到输出。命令行要加这个参数。

2019-03-04
24
丁丁历险记
读书笔记 1 极致简约 go 语言提供大量的约定>配置。 例如 连续 const i:=1 自动类型识别 for 的括号去掉 function 改func 2 老师在写 testExchange coding 手法如此笨拙,大神也有手脚笨,微操真的很差,swap 算法可以直接写错 , t *testing.T 这类高频操作不设置hotkey 备注 老师的能力和地位早就不容置疑了,在深信老师是coding大神的基础上,我做如下推断,大神在不专注的时候也是效率也是极低的。 其二 非一线coder 其三 下兵伐术,上兵伐谋 ,想以前的魔兽职业选手,微操达到极致,经常大好优势不胜,大局观,意识,逐步迭代能力都很重要。 想了半天,还是觉得被这代码操作给吓到了,作为对比隔壁nginx 老师写lua 时就很流畅。

作者回复: 分析透彻,我一直以来很少花时间研究IDE的快捷还有语言的语法糖,因为我一直认为编程花时间最多的是思考好的算法或程序结构。所以,提高编程效率和质量的要点是理解程序设计的思想,语言的内在机制。当然,如果可以各个方面都做到更好那就更好了。很好的分析,帮我做到更好,谢谢!

2019-10-30
2
17
中年男子
请问我在atom 中保存后 , 并没有输出 t.Log() 要输出的内容,是什么原因呢?

作者回复: 确认安装了go-plus插件 Atom->preferences->packages 搜索找到go-plus 在settings中,Test配置中选中 Run with verbose flag setting

2019-03-05
5
11
万能的芝麻酱
根据老师后面讲的变量互换,斐波那契数列生成方法可以简化为: func TestFibList2(t *testing.T) { a := 1 var tmp int t.Log(a) for i:=0;i<10;i++{ a,tmp = tmp + a,a //此处不光可以原值交换,还可以运算后交换 t.Log(a) } }

作者回复: 赞赞赞

2019-03-05
2
10
Mars丶小石头
package try_test import "testing" func TestFirstTry(t *testing.T) { t.Log("My First Try!") } 老师,我的IDE提示: go: go.mod file not found in current directory or any parent directory; see 'go help modules' 会是什么原因呢?

作者回复: 你可以执行 go mod init ….

2021-03-20
4
NO.9
package trytest import "testing" func TestFirstTry(t *testing.T) { t.log("My first try!") } go-plus setting已经配置完了 ----------------------------------------------- ./first_test.go:6:3: t.log undefined (type *testing.T has no field or method log)

作者回复: t.Log(...) "L"大写

2019-08-14
4
老师,我用t.Log怎么不行?

作者回复: 如果是命令行go test -v ,要加-v 如果是IDE,要进行设置,如atom Atom->preferences->packages 搜索找到go-plus 在settings中,Test配置Run with verbose flag setting

2019-03-09
4
小雄
老师,您好: 操作系统平台:Windows 10 编辑器:atom + go-plus 代码如下: package constant_test import "testing" const( Monday = iota + 1 Tuesday Wednesday ) func TestConstantTry(t *testing.T){ t.Log(Monday, Tuesday) } 进入cmd,运行 go run constant_try_test.go,报错如下: go run: cannot run *_test.go files (constant_try_test.go) 请问下是什么原因?谢谢

作者回复: 这是测试程序,用go test运行

2019-03-04
4
附件均衡
在视频7分钟的时候,go 语言交换两个变量的值不需要用临时变量 tmp 吧? a, b = b, a 就好了

作者回复: 是的这个在视频里提到了。给出这个写法就是要比较go和其他语言的不同:)

2019-03-04
2
3
收起评论