课程笔记-走进GO语言基础语法-2 | 青训营笔记

106 阅读2分钟

这是我参与「青训营 x 字节后端训练营」笔记创作活动的第2天。这是我在《走进GO语言基础》课程的第2篇笔记。

大佬请退出阅读

(续前篇)

2. Go入门

2.1 基础语法

  • range: 对数组操作,会返回 1.索引(不需要可用下划线);2.对应位置的值 map类似,返回 1.key;2.value
package main
import "fmt"

func main(){
    nums := []int{2,3,4}
    sum := 0
    for i, num := range sums {
        sum += num
        if num==2 {
            fmt.Println("index:", i)
        }
    }
    fmt.Println(sum)
}
  • 函数:参数、返回变量类型后置声明,可以在一个return语句里用 , 返回多个值(业务逻辑代码里,往往第一个值是所需结果、后面是对错误情况的反映)
  • 指针:可用操作有限,func add2ptr(n *int)*n += 2add2ptr(&n)
  • 结构体:带类型的字段的集合,可以用结构体名称来初始化结构体变量(未指定初值“未初始化”:空值——数值为0,字符串为空值)。作为函数的参数,有指针、非指针两种用法,可以用指针来修改值并节省拷贝大结构体的开销(如果有)
  • 结构体方法(实现的函数“类成员函数”):也有两种方法:带指针和不带指针
  • 错误处理:在上面的“函数”中提到,函数错误是用返回值实现的。其中参数可定义为err error,返回值可用nil或者errors.New("not found")——相应的,接收需要写两个变量
  • 字符串操作:在strings包里有非常多的字符串操作函数(当然别忘了len(ps:中文字符数比较特别))
  • 字符串格式化输出:用的就是hello world中的fmt.,其中Printf非常类似C语言中的printf,但不同的是:需要换行符;格式控制串中%v可以代表任意类型的变量;对于结构体等,%+v``%#v会打印出更详细的内容