Golang指针定义

Umu*_*ürk 1 pointers go

伙计我有Student struct,我正在尝试将Student项目创建为*Student.我得到无效的内存地址或nil指针解除引用错误.

var newStudent *Student
newStudent.Name = "John"
Run Code Online (Sandbox Code Playgroud)

我是这样创造的.当我尝试设置任何变量时,我得到同样的错误.我错了什么?

pet*_*rSO 5

你需要为内存分配内存Student struct.例如,

package main

import "fmt"

type Student struct {
    Name string
}

func main() {
    var newStudent *Student

    newStudent = new(Student)
    newStudent.Name = "John"
    fmt.Println(*newStudent)

    newStudent = &Student{}
    newStudent.Name = "Jane"
    fmt.Println(*newStudent)

    newStudent = &Student{Name: "Jill"}
    fmt.Println(*newStudent)
}
Run Code Online (Sandbox Code Playgroud)

输出:

{John}
{Jane}
{Jill}
Run Code Online (Sandbox Code Playgroud)