Go语言学习笔记(一)
Go学习笔记
1.字符串类型
package main
import "unsafe"
const (
a = "abc"
b = len(a)
c = unsafe.Sizeof(a)
)
func main(){
println(a, b, c)
}
unsafe.Sizeof(a)输出的结果是16 。字符串类型在 go 里是个结构, 包含指向底层数组的指针和长度,这两部分每部分都是 8 个字节,所以字符串类型大小为 16 个字节。
2._下划线
在Go语言中,下划线 _
用作一个空白标识符(blank identifier),它用于忽略或丢弃不需要的变量或值。这在编程中非常有用,特别是在处理多个返回值、未使用的变量或者在某些情况下需要明确表示某个位置不需要值时。
以下是一些使用下划线的场景:
-
忽略函数返回的多个值:
Go语言中的函数可以返回多个值。如果函数的某个返回值不需要使用,可以使用下划线来忽略它。f, _ := os.Open("file.txt")
在这个例子中,
os.Open
函数返回两个值:文件句柄和错误。我们只需要文件句柄,因此使用_
来忽略错误值。 -
在多变量赋值中忽略某些变量:
当进行多变量赋值时,可以使用下划线来忽略不需要的变量。x, _ := 10, 20
这里我们只关心
x
的值,所以第二个值被忽略。 -
在常量定义中使用
iota
时忽略某些值:
正如之前提到的,在使用iota
定义一组常量时,可以使用下划线来忽略某些值。const ( _ = iota // 忽略第一个值,iota 从0开始 KB // 1 MB // 2 )
-
在类型断言中忽略错误:
在使用类型断言时,如果只关心第一个返回值(即断言后的值),可以使用下划线来忽略错误。s := interface{}("string").(string) // 断言为string类型,忽略错误
-
在结构体字段中忽略某些字段:
当处理结构体时,如果某些字段不需要赋值或使用,可以在字段声明时使用下划线。type T struct { X int _ string // 忽略这个字段 }
使用下划线是一种清晰地表达代码意图的方式,它告诉其他开发者这个位置的值是被有意忽略的。
3.初始化二维数组
初始化二维数组
多维数组可通过大括号来初始值。以下实例为一个 3 行 4 列的二维数组:
a := [3][4]int{
{0, 1, 2, 3} , /* 第一行索引为 0 */
{4, 5, 6, 7} , /* 第二行索引为 1 */
{8, 9, 10, 11}, /* 第三行索引为 2 */
}
注意:
以上代码中倒数第二行的 } 必须要有逗号,因为最后一行的 } 不能单独一行,也可以写成这样:
a := [3][4]int{
{0, 1, 2, 3} , /* 第一行索引为 0 */
{4, 5, 6, 7} , /* 第二行索引为 1 */
{8, 9, 10, 11}} /* 第三行索引为 2 */
我们可以看到Go语言里数组的声明是这样来写的
var arr = [5]int{1, 2, 3, 4, 5}
// 或者
arr := [5]int{1, 2, 3, 4, 5}