Go语言常见问题

2024-06-27  本文已影响0人  周山

变量类

type error interface {
    Error() string
}

在这个例子中,你试图将一个变量L添加到一个已存在的切片中。但是,你并没有为L分配一个初始值,所以编译器会报错。为了解决这个问题,你需要显式地为L分配一个初始值。例如:

L := []int{}
L = append(L, ...)

与显式初始化相对应的是默认初始化。默认初始化是指在声明变量时,为变量分配一个默认值。这种初始化方式通常用于需要变量有一个默认值的情况。
例如,在声明一个整数变量时,如果没有显式地指定初始值,那么它将被初始化为0:

var i int

在这个例子中,i被显式地初始化为0。如果你不显式地初始化i,那么它将被默认初始化为0。

str := "abc" + "123"
fmt.Sprintf("abc%d", 123)

除了以上两种连接方式,还有 strings.Join()、buffer.WriteString()等。

new() 与 make() 的区别

new(T) 会为 T 类型的新值分配已置零的内存空间,并返回地址(指针),即类型为 *T的值。换句话说就是,返回一个指针,该指针指向新分配的、类型为 T 的零值。适用于值类型,如数组、结构体等。
make(T,args) 返回初始化之后的 T 类型的值,这个值并不是 T 类型的零值,也不是指针 *T,是经过初始化之后的 T 的引用。make() 只适用于 slice、map 和 channel.

编译、初始化相关操作

上一篇下一篇

猜你喜欢

热点阅读