作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有:
@property float x(float[2] vector)
{
return vector[0];
}
@property void x(float[2] vector, float value)
{
vector[0] = value;
}
我可以声明一个数组,例如 float[2] a;
然后通过简单地调用 a.x
获取数组的第一个元素,但是如果我想设置a[0]
,我不能调用a.x = 3.14
。它不会给编译器带来问题,也不会抛出异常。稍后,当我得到 a[0]
时,它说它是 NaN
,即 float.init
。这意味着从未设置 a[0] 并且 a.x
同时有效和无效。
我只想要一个 float 组并有一个获取和设置属性 x。有没有办法做到这一点?我知道我可以使用 a.x(3.14)
来设置 a[0]
,但我想让它看起来好像 x
是一个a
的成员属性。
最佳答案
静态数组按值传递。您需要使用 ref
通过引用传递:
@property float x(ref float[2] vector)
@property void x(ref float[2] vector, float value)
注意:我指的是 D2。 AFAIK 在 D1 静态数组中过去是通过引用传递的,但在 D2 中它们默认是通过值传递的。
关于arrays - 如何为数组设置属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13914798/
我是一名优秀的程序员,十分优秀!