【问题标题】:Lua - Array indexed by vectorLua - 由向量索引的数组
【发布时间】:2019-06-21 13:31:41
【问题描述】:

似乎由向量索引的数组不是由向量的值索引,而是由向量的地址索引。一个例子:

local a = vmath.vector3(1,2,3)
    local b = vmath.vector3(1,2,3)
    test = {}
    test[a] = 1
    print(a==b, test[a], test[b])

打印“true, 1, nil”

这是正常行为吗?如何使用值而不是地址来索引数组?

【问题讨论】:

  • 将向量转换为字符串"1.0;2.0;3.0",并将此字符串用作表键。
  • 函数“tostring”有逆向函数吗?还是我必须自己编写“tostring, fromstring”?
  • 在“fromstring”之后,您将获得另一个具有相同组件的向量。你还好吗?
  • 是的,这将是完美的。
  • 索引运算符可以是overriddenTorch 是这样的吗:a[{1,2,3}]

标签: arrays vector lua


【解决方案1】:

正如 Egor Skriptunoff 在 cmets 中提到的那样,解决方案是使用 tostring() 将向量转换为字符串

【讨论】:

  • 请注意,在 Lua 5.3 上,相等的整数和浮点数可能会被转换为不同的字符串:"2" and "2.0"
  • 感谢您的来信。然而在这个特定的例子中,我的向量包含整数。
猜你喜欢
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
  • 2017-03-13
  • 2020-12-27
  • 2018-05-20
  • 2016-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多