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 语言从入门到实战
登录|注册
留言
15
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 08 | 条件和循环
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 | 结课测试&结束语
登录 后留言

全部留言(15)

  • 最新
  • 精选
Vincent
老师您好!在条件if语句中加的赋值语句,是不是也可以在if语句前面先赋值呢?比如 if v, err := someFunc(); err == nil { // do something } else { // do some other thing } 写成 v, err := someFunc() if err == nil { ...} 感觉这样代码好像更清楚些呢?

作者回复: 嗯,两种都是可以的

2019-03-09
3
2
风轻扬
老师,您在介绍if时的if a:=1==1;a{ t.Log("1==1") } if条件部分该怎么理解。您的文档里介绍,分号前是声明,分号后是condition。但是分号前没看懂,分号后只有一个变量引用。希望老师能解释一下if中的这行表达式

作者回复: 分号前是一个赋值表达式,1==1是一个逻辑运算,返回布尔值true, 分号后面需要一个布尔值作为if的条件部分,因为a的值是true,所以就会输出1==1

2020-05-11
L心逸
像高中生一样起早看教程

作者回复: 希望不是高三的学生那样。having fun!

2019-07-10
于东燃
这个跟kotlin中when的分支语句是一模一样的,那我想问一下作为语言层的支持kotlin最终被编译成class二进制文件,然后加载到jvm中运行,go的底层运行原理是怎样的呢?他跟Java。kotlin这种jvm为基础的语言相比有什么优势呢

作者回复: go直接编译为local二进制,而不是像java一样运行在jvm中,编译为IL

2019-04-23
YanZu
老师您好!在条件if语句中加的赋值语句,是不是也可以在if语句前面先赋值呢?比如 if v, err := someFunc(); err == nil { // do something } else { // do some other thing } 写成 v, err := someFunc() if err == nil { ...} 感觉这样代码好像更清楚些呢? 作者回复: 嗯,两种都是可以的
2020-05-24
3
t7ink
老师 golang里像 while (a > 0 and a < b ) { do something } 这样的循环如何实现? 想了一下是不是应该是 for { if ( a > 0 && a < b) { do something } }
2019-03-08
2
林松
二刷
2022-04-06
1
t7ink
for { if ( a > 0 && a < b) { do something }else { break } }
2019-03-08
1
1
Geek_ad376e
在把case 语句用为if 语句的时候,编写的程序如下 func TestSwitchCaseCondition(t *testing.T) { for i := 0; i < 5; i++ { switch i { case i%2 == 0: t.Log("Even") case i%2 == 1: t.Log("Odd") default: t.Log("unknown") } } } 但是运行结果为: # go-learning/src/ch5/condition_test [go-learning/src/ch5/condition.test] e:\go-learning\src\ch5\condition\condition_test.go:27:3: cannot use i % 2 == 0 (type untyped bool) as type int e:\go-learning\src\ch5\condition\condition_test.go:29:3: cannot use i % 2 == 1 (type untyped bool) as type int FAIL go-learning/src/ch5/condition [build failed] 老师,这是怎么回事
2021-05-20
2
escray
其实我挺喜欢 Go 语言里面只有 for 一种循环关键字,这样就不用想太多,但是没有 foreach 有点可惜。 能感觉到 Go 的语法似乎是吸取了目前现有各种语言的优点,其中当然是有一些取舍和平衡,但是考虑到创建者的资历,我这样的小白只能学习,不能质疑。
2021-03-25
收起评论