小编puo*_*lam的帖子

Golang 类型嵌入工具

我有一个嵌入类型 B 的类型 T,并且 *B 实现了 I。 *T 可以分配给类型 I 的变量,但不是在 T 的情况下,这是否意味着 (*T) 的方法集包含值和B的指针接收器?

package main

import (
    "fmt"
)

type I interface {
    Foo()
}
type B struct {}
type T struct {
    B
}

func (a *B) Foo() {
    fmt.Println("Bar")
}

func main() {
    t := T{B{}}
    // var i I = t -> error
    var i I = &t
    i.Foo()
}

Run Code Online (Sandbox Code Playgroud)

methods struct embedding go

1
推荐指数
1
解决办法
59
查看次数

标签 统计

embedding ×1

go ×1

methods ×1

struct ×1