在 Go 语言中,new
和 make
都是用于创建新的变量的内置函数,但它们的作用是不同的。
区别
在 Go 语言中,new
和 make
的作用是不同的:
new
用于创建一个新的变量,并返回变量的指针。make
用于创建一个新的切片、映射或通道,并返回它们的引用。
虽然 new
和 make
的作用不同,但它们都可以用于创建新的变量。下面是一个示例代码,演示了如何使用 new
和 make
创建新的变量:
package main
import "fmt"
func main() {
// 使用 new 创建一个新的整型变量
var numPtr *int = new(int)
// 使用 make 创建一个新的整型切片
var numSlice []int = make([]int, 3)
// 打印变量的值和类型
fmt.Printf("%v %T\n", numPtr, numPtr) // 输出:0x12345678 *int
fmt.Printf("%v %T\n", numSlice, numSlice) // 输出:[0 0 0] []int
}
在上面的代码中,我们使用 new
创建一个新的整型变量 numPtr
,并使用 make
创建一个新的整型切片 numSlice
。我们可以使用 fmt.Printf
函数打印变量的值和类型,发现 numPtr
是一个指针类型,指向一个值为 0 的整型变量,而 numSlice
是一个切片类型&#