第一部分
常量:
常量的数值可以作为各种类型使用
func consts() {
const (
filename = "abc.txt"
a, b = 3, 4
)
var c int
c = int(math.Sqrt(a*a + b*b))
fmt.Println(filename, c)
}
枚举类型举例
tips: 1 :没有表达式的常量定义 复用上一行的表达式
2 :从第一行开始 iota从0逐行+1
3: 不同的const定义块互相不干扰
4 :iota只能在常量组中使用
func enums(){
//普通枚举类型
const(
cpp = iota
_
java
golang
)
//自增值枚举类型b kb mb gb tb pb
const(
b = 1 << (10 * iota)
kb
mb
gb
tb
pb
)
fmt.Println(cpp, java, golang)
fmt.Println(b, kb, mb, gb, tb, pb)
}
const(
a = iota // iota只能在常量组中使用
b = 10
c // 没有表达式的常量定义 复用上一行的表达式
d, e = iota, iota
f = iota // 从第一行开始 iota从0逐行+1
)
iota代表的是这里的行数
打印下来:
0 10 10 3 3 4
Switch使用
func grade(score int) string {
g := ""
switch {
case score < 0 || score > 100:
panic(fmt.Sprintf("Wrong score: %d", score))
case score <60:
g = "F"
case score <80:
g = "C"
case score <90:
g = "B"
case score <100:
g = "A"
}
return g
}
IF判断方式
if的条件是可以赋值的
if的条件里赋值的变量作用域就在这个if语句里
举例:
func main() {
const filename = "abc.txt"
if contents, err := ioutil.ReadFile(filename); err != nil{
fmt.Println(err)
} else {
//print文件使用
fmt.Printf("%s\n", contents)
}
//之前的写法
/*
contents, err := ioutil.ReadFile(filename);
if err != nil{
fmt.Println(err)
} else {
//print文件使用
fmt.Printf("%s\n", contents)
}*/
}
数组:
[10]int 和[20]int 时不同的类型
调用func f(arr [10]int) 会拷贝数组
定义数组的方式:
var arr1 [5]int
arr2 := [3]int{1, 3, 5}
arr3 := [...]int{2, 4, 6, 8, 10}
//多维数组 四行五列
var grid [4][5]int
遍历数组的方式:
//普通处理数组
for i := 0; i < len(arr3); i++ {
fmt.Println(arr3[i])
}
//range关键字获取数组的下标和值
for _, v := range arr3 {
fmt.Println(v)
}
class命名 大写为public 小写为private
一个目录只能有一个package包
main()方法 必须配合package main
函数的两种写法:
语法一
func session(s RetrieverPoster) string{
s.Post(url, map[string]string{
"contents": "another faked imooc.com",
})
return s.Get(url)
}
调用方式就是session(***)
语法二
func (s RetrieverPoster) session string{
s.Post(url, map[string]string{
"contents": "another faked imooc.com",
})
return s.Get(url)
}
调用方式就是 ***.session()
go mod依赖管理
由GO命令统一管理 用户不必关心目录结构
初始化:go mod init
增加依赖: go get
更新依赖: go get [@v版本号] 拿到新老版本之后mod会多一些东西 通过go mod tidy把多余依赖去除
项目迁移到go mod: go mod init , go build ./...
网友评论