gpt4 book ai didi

go - 来自接口(interface)值的底层指针类型

转载 作者:数据小太阳 更新时间:2023-10-29 03:37:44 27 4
gpt4 key购买 nike

如何从接口(interface)获取底层指针类型?

package main

import (
"fmt"
)

type Car interface {
Drive() string
}
type MyCar struct {
name string
}
func (MyCar) Drive ( ) string {
return "rum rum"
}


func main() {
var car Car
mycar := &MyCar{name:"mycar"}
car = mycar
mycarptr, err := car.(*MyCar)
mycarvalue, err2 := car.(MyCar)
fmt.Printf( "as ptr failed: %t, as value failed: %t\n", err, err2 )
fmt.Printf( "as ptr: %+v, as value: %+v", mycarptr, mycarvalue)
}

最佳答案

您对 *MyCar 的第一个断言工作正常

这是一个playground举例说明

您对 MyCar 的第二个断言将失败,因为它不是指针。

关于go - 来自接口(interface)值的底层指针类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26079892/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com