我刚刚在代码中遇到过这个,我不明白它在做什么,或者它是如何做的
pos[iter](1) += 12.0f / 900.0f;
(1) 是否将位置 iter 处的数组值初始化为 1,然后将 (12.0f / 900.0f) 添加到它?我不敢相信它在循环中用于设置调试文本的位置,每个循环都将下面的下一行设置为高 y 值(屏幕上的较低点)。iter 可以是 0 或 1,具体取决于调试文本所在的列表。
我会理解它是否是静态操作。
pos[iter](1) += 12.0f / 900.0f;
pos
可以是数组、映射或具有重载的类的对象operator[]
。pos[iter]
返回一个对象(可以是函数指针、lambda或具有重载 的类operator()
)并使用参数 1 调用它。函数调用很可能返回对返回对象的引用,因为您可以使用+=
.
所以说清楚,(1)
不是访问任何东西的第二个元素。它只是使用该参数调用函数或方法。该方法返回一些具有适当重载的对象operator +=
(可以是标量或实际类)。