我试图用通用算法实现向量代数,最后玩了迭代器。我发现了两个不明显和意外行为的例子:
- 如果我有指向
p
带有 field 的结构(实例)的指针,我可以像(而不是)fi
一样简单地访问该字段p.fi
p.*.fi
- 如果我有一个“成员”函数
fun(this: *Self)
(whereSelf = @This()
)和一个结构实例s
,我可以像调用函数一样简单s.fun()
(而不是(&s).fun()
)
我的问题是:
- 它是否在某处记录(或以任何方式提及)?我查看了来自ziglearn.org的语言参考和指南,但没有找到任何东西
- 我们在这些例子中观察到了什么?两种特殊情况的语法糖,还是有更一般的规则可以推断出这种行为?
- 还有更多奇怪指针行为的例子吗?