Chanpter01-02笔记
- 01课程介绍
- 1-1 | 导学
- Go语言的项目
- Go语言的设计初衷
- 项目转型首选语言
- Go语言的特别
- 没有
- 没有”对象”
- 没有继承多态
- 没有泛型
- 没有try/catch
- 有
- 接口
- 函数式编程
- CSP并发模型(goroutine + channel)
- 学习go语言简单,因为语言简单
- 用好go语言不容易,因为要调整三观
- 1-2 | 安装和环境
- 02基础语法
- 2-1 | 变量定义
- 使用var关键字
- var a,b,c bool
- var s1,s2 string = “hello”,”world”
- 可以放在函数内,或直接放在包内
- 使用var()集中定义
- 让编译器自动决定类型
- var a , b , c, s = 3,4, true , “def”
- 使用:=定义变量
- a,b,c,s := 3,4,true,”def” //var not use
- 只能在函数内使用
- 2-2 | 内建变量类型
- bool,string
- integer
- int,uint
- int8,uint8
- int16,uint16
- int32,uint32
- int64,uint64
- uintptr
- byte,rune(char 32bit)
- float
- float32
- float64
- complex64
- complex128
- 强制类型转换
- 类型高转换都是强制的
- var a,b int = 3,4
- var c int = math.Sqrt(aa+bb) //wrong
- var c int = int(math.Sqrt(float64(aa+bb)))
- 2-3 | 常量与枚举
- 常量的定义
- const filename = “abc.txt”
- const数值可作为各种类型使用
- const a,b = 3,4
- var c int = int(math.Sqrt(aa+bb))//不需要进行强制类型转换
- 枚举类型(特殊的常量)
- 要点回顾
- 变量类型写在变量名之后
- 编译器可以推测变量的类型
- 没有char,只有32bit的rune
- 原生支持复数类型
- 2-4 | 条件语句
- if语句
- if 条件里不需要括号
- if条件里可以赋值
- if条件里的赋值变量作用域只在这个if语句里面
- switch
- 自动break,除非使用fallthrough
- switch后面可以没有表达式
- 2-5 | 循环
- for
- for的条件里不需要括号
- 可以省略初始条件,结束条件,递增表达式
- 省略初始条件,相当于while
- 什么都省略,相当于死循环
- 基本语法要点回顾
- for,if后面没有括号
- if条件里面也可以定义变量
- 没有while
- swith不需要break,也可以不用表达式