面试题答案
一键面试在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
进行空指针检查,避免了空指针引发的运行时错误。