Go语言基础 | 青训营笔记

128 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

之前没怎么写笔记,现在对于之前所学知识点进行一个查漏补缺的记录与总结

一、本堂课重点内容:

  • 本堂课重点介绍go语言基础语法与常见数据类型的使用

二、详细知识点介绍:

  • 基本类型

基本类型是 Go自带类型,如 数值、浮点、字符串、布尔、数组 及 错误 类型,本质上是原始类型,不可改变,所以对他们进行操作,一般都会返回一个新创建的值,所以把这些值传递给函数时,其实传递的是一个值的副本。

  • 引用类型

引用类型和原始的基本类型恰恰相反,它的修改可以影响到任何引用到它的变量。在 Go 语言中,引用类型有 切片(slice)、字典(map)、接口(interface)、函数(func) 以及 通道(chan) 。

  • 结构类型

结构类型是用来描述一组值的,本质上是一种聚合型的数据类型。要定义一个结构体的类型,通过 type 关键字和类型 struct 进行声明。

  • 自定义类型

Go 语言支持自定义类型,一个方式是可以自定义结构体类型,这也是比较常用的自定义类型的方法。另外一个方法是基于一个已有的类型,就是基于一个现有的类型创造新的类型,这种也是使用 type 关键字。

三、实践练习例子:

基本类型
func main() {
    name := "小二"
    fmt.Println(modify1(name))
    fmt.Println(name)
}
 
func modify1(sname string)string{
    sname = sname + sname
    return sname
}
引用类型
func main() {
    ages := map[string]int{"小三": 200}
    fmt.Println(ages)
    modify2(ages)
    fmt.Println(ages)
}
 
func modify2(m map[string]int) {
    m["小三"] = 100
}
结构类型
type book struct {
    page int
    book_name string
}
自定义类型
type Duration int64
var i Duration = 100

四、课后个人总结:

  • 需明白值传递与引用传递的区别以及在Go当中的体现
  • 需对切片的扩容过限情况进行了解

五、引用参考: