golang 空指针可以访问函数吗?
先给答案是可以访问的,
看下实例:
package main
import (
	"fmt"
)
type person struct{}
func(p *person) sayHi(){
	fmt.Println("hi")
	p.sayHi2()
}
func(p *person) sayHi2(){
	fmt.Println("hi2")
}
func main() {
	var p *person
	p.sayHi()输出:
hi
hi2虽然p是空指针,但是是可以访问sayHi()函数的
其实可以这么理解,类对象其实没用上:
package main
import (
	"fmt"
)
type person struct{}
func sayHi(p *person) {
	fmt.Println("hi")
	sayHi2(p)
}
func sayHi2(p *person){
	fmt.Println("hi2")
}
func main() {
	var p *person
	sayHi(p)可以把结构函数看成普通带参函数,只是刚好参数p是空的。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号