寻常怎么学习 Go
学习 Go 语言可以通过以下方式:
官方文档:阅读 Go的官方文档 和 Go by Example。
册本:阅读《The Go Programming Language》和《Go in Action》等册本。
实践项目:实际编写一些小项目或工作中的使命,用Go来办理问题。
在线课程:到场如 Coursera、Udemy 上的 Go 语言课程。
社区和论坛:到场Go相干的在线社区(如 Golang中国 和 Reddit),和其他开发者交流。
此外自己也会写一些博客将自己的学习总结举行输出性学习
你了解切片吗?详细介绍一下?
切片(slice)是 Go 中的一种数据结构。他是对数组的包装,即切片本身是一个结构体,这个结构体有有几个重要的字段即:指向底层数组的指针、长度和容量。
(指向底层数组的指针:指向实际存储元素的数组的起始位置。
长度(length):当前切片所包罗的元素数目。
容量(capacity):从切片的起始位置到底层数组末尾的元素数目。) (必要知道口试不问不说)
这种计划使得切片在操作时非常高效,由于它允许基于同一个数组创建多个切片,不会由于切片操作而频仍地复制数组。他此外他在扩容和使用上也会有一些区别。
a. 扩容机制:当切片容量不敷时,Go会新创建一个比当前切片容量更大的数组(通常新的容量是旧的2倍),然后将原数组中的元素复制到新数组中,再将切片的底层数组指针指向新数组。
切片是引用类型:由于切片结构包罗一个指向底层数组的指针,以及切片的长度和容量信息。多个切片可以共享同一个底层数组,因此它是引用类型。
b. 使用上:go的切片是一个引用类型的,在切片作为一个函数的参数举行函数调用时,会将这个切片的指针举行复制,在函数中对切片举行修改会影响到原本的切片。而数组是一个值类型,当数组作为一个函数的参数举行调用时,是将整个数组举行复制的,在函数中对数组是原数组的副本,因此在函数内对数组举行操作是不会影响原本的数组的。