gpt4 book ai didi

go - 使用接口(interface)时将结构传递给函数?

转载 作者:行者123 更新时间:2023-12-03 10:10:18 25 4
gpt4 key购买 nike

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

1年前关闭。




Improve this question




我有下面的代码,来自 Go by Example。除了一个关键部分外,我什么都懂:如果 measure 采用几何类型的东西,我怎么能创建一个矩形并将其传递进去?

package main

import "fmt"

type geometry interface {
area() float64
}

type rect struct {
width, height float64
}

func main() {
r := rect{width: 10, height: 10}
measure(r)
}

func measure(g geometry) {
fmt.Println(g)
fmt.Println(g.area())
}

func (r rect) area() float64 {
return r.width * r.height
}

最佳答案

这是因为rect实现 geometry .在 Go 中实现接口(interface)意味着类型实现了它的方法。由于rect有一个 area方法,满足接口(interface)geometry因为这是唯一的要求。

关于go - 使用接口(interface)时将结构传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64199566/

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