day 1

62 阅读2分钟

学习笔记

个人认为学会一门语言应当遵循一些顺序

  • 基础语法
  • 数组
  • 面向对象
  • 标准库和第三方库

另外还需要学习

  • 依赖管理
  • 框架,发送请求,进阶管理

基本上把这几项搞定就能开始干活了,对于 Go语言基础语法,没有找到一个合适的学习路径,写的多了自然就记住了。

  1. 引入依赖,标准输出

image.png

go语言不加分号,import 括号内是引入的包名称,fmt应该表示的是标准库。

  1. 定义变量

image.png

代码中可以看出go语言的变量可以不表明类型,如果想要表明则在变量名后跟随,可以不给定初始值 可以+拼接字符串,与python同样没有字符char类型,而全用string类型替代。需要用到字符的时候例如s[0]会自动转化成int或者byte,const表示常量定义基本同上。

go语言中约定俗成了大写表示公有,小写表示私有。

  1. for循环

image.png

竟然没有while的说法。 不写条件变成死循环。

4.if语句

image.png

可以在判断前加上一点奇奇怪怪的语句,语法是比较怪异的。不过设计的初衷大概是减少新的变量定义吧。

  1. switch 语句

image.png

switch后面可以加两三个,而且不需要写break,还是挺方便的。

  1. array

image.png

  1. slice
s := make([]string, 3)
s[0] = "a"
s[1] = "b"
s[2] = "c"
fmt.Println("get:", s[2])   // c
fmt.Println("len:", len(s)) // 3

s = append(s, "d")
s = append(s, "e", "f")
fmt.Println(s) // [a b c d e f]

c := make([]string, len(s))
copy(c, s)
fmt.Println(c) // [a b c d e f]

fmt.Println(s[2:5]) // [c d e]
fmt.Println(s[:5])  // [a b c d e]
fmt.Println(s[2:])  // [c d e f]

good := []string{"g", "o", "o", "d"}
fmt.Println(good) // [g o o d]

可变长数组,需要用make获取空间,定义时还可以加一个属性,表示一步跳跃的长度。使用时可以直接当数组使用。copy是一个内置函数可以进行复制。