
php小编小新在这篇文章中将介绍一个重要的注意事项:在PHP中,不能使用"struct"作为类型。这是由于PHP语言本身的限制,不支持类似于C语言中的"struct"类型定义。在PHP中,我们可以使用类(class)来定义自定义的数据结构,以及相关的属性和方法。通过使用类的方式,我们可以更灵活和强大地操作数据,实现更复杂的逻辑和功能。因此,在编写PHP代码时,请记得避免使用"struct"作为类型定义,而是使用类来替代。这样能够更好地符合PHP语言的特性和规范,使代码更易读、易懂和易维护。
问题内容
我有这个代码:
type Iterable[T any] struct {
Val T
End T
Next func() (bool, T)
}
func acceptStructWithNext[T any](r struct{ Next func() (bool, T) }) {
fmt.Println(r)
}
func main() {
iterable := Iterable[int]{
Val: 0,
End: 100,
Next: func() (bool, int) {
return true, 0
},
}
acceptStructWithNext[int](iterable) // error is here
}
我收到此编译错误:
Cannot use 'iterable' (type Iterable[int]) as the type struct {...}
我认为结构类型应该允许这种类型的事情 - 我哪里出错了?
良精商城网店购物系统是一套能够适合不同类型商品、超强灵活的多功能在线商店系统,三级分销 PC+移动端+微网站,为您提供了一个完整的在线开店解决方案。良精网店购物系统除了拥有一般网上商店系统所具有的所有功能,还拥有着其它网店系统没有的许多超强功能。多种独创的技术使得系统能满足各行业广大用户的各种各样的需求,是一个经过完善设计并适用于各种服务器环境的高效、全新、快速和优秀的网上购物软件解决方案。
解决方法
是的,但是 Go 没有“结构类型”。在某种程度上,结构类型的好处可以通过接口的隐式满足规则获得。但这仅适用于界面。
请参阅https://www.php.cn/link/2a2f98d3597419498e4d734d8c2dd106
假设 Go 会有像教科书一样的结构类型结构类型。









