Go
语言有一个内置的new
函数,其定义如下:
func new
func new(Type) *Type
The new built-in function allocates memory. The first argument is a type, not a value, and the value returned is a pointer to a newly allocated zero value of that type.
其输入参数是一个类型,返回是一个指向该类型内存的指针,且指针所指向的这块内存已被初始化为该类型的0
值。下面例子演示了如何使用new
函数:
package main
import (
"fmt"
)
func main() {
v := new(int)
*v++
fmt.Println(*v)
}
运行结果如下:
1
new
函数的出现早于make
和&{}
,并且它可以让人直观地认识到返回值就是一个指针,在某些情形下,这会让人更清晰地理解代码。
参考资料:
(1)http://golang.org/pkg/builtin/#new;
(2)Why is there a “new” in Go?。