出错的用法

package main

import "fmt"

var a *string

func main() {
    fmt.Println(*a)
}

正确的用法

package main

import "fmt"

var a = new(string)

func main() {
    fmt.Println(*a)
}

原因

var a *string只是声明了变量a,并没有初始化(分配内存),没有分配内存,*自然是取不到地址的。

所以在声明的同时使用内建函数new分配内存后再赋值即可解决。


从君华
136 声望7 粉丝

万物之中,简洁最美。