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 }
我收到此编译错误:
<code> Cannot use 'iterable' (type Iterable[int]) as the type struct {...} </code>
我认为结构类型应该允许这种类型的事情 - 我哪里出错了?
是的,但是 Go 没有“结构类型”。在某种程度上,结构类型的好处可以通过接口的隐式满足规则获得。但这仅适用于界面。
请参阅https://www.php.cn/link/2a2f98d3597419498e4d734d8c2dd106
假设 Go 会有像教科书一样的结构类型结构类型。
以上是不能使用 struct 作为类型 struct {...}的详细内容。更多信息请关注PHP中文网其他相关文章!