MST

星途 面试题库

面试题:Go语言中如何通过防御性编程处理空指针情况

在Go语言里,假设你有一个结构体指针,在调用其方法前,怎样运用防御性编程策略避免因空指针导致的运行时错误?请举例说明。
18.7万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

在Go语言中,要避免因结构体指针为空导致运行时错误,可以在调用方法前进行空指针检查。示例如下:

package main

import "fmt"

// 定义一个结构体
type Person struct {
    Name string
}

// 定义结构体方法
func (p *Person) SayHello() {
    fmt.Printf("Hello, my name is %s\n", p.Name)
}

func main() {
    var person *Person
    // 防御性编程:检查指针是否为空
    if person != nil {
        person.SayHello()
    } else {
        fmt.Println("Person pointer is nil")
    }
}

在上述代码中,main函数里定义了一个Person类型的指针person,并在调用SayHello方法前,通过if person != nil进行空指针检查,避免了空指针引发的运行时错误。