0

在 Gstrings 列表上运行时,尽管预期的索引匹配indexOf,但返回值始终是:-1

mystr = "foo"

// expect .indexOf to return 0
println "${["${mystr}_bar", "baz"].indexOf("foo_bar")}" // -1
println "${[mystr + "_bar", "baz"].indexOf("foo_bar")}" // ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​0​​​​​​​​​​​​​​

我误解了什么还是这是一个错误?

4

1 回答 1

2

您将不得不使用:

["${mystr}_bar".toString(), "baz"].indexOf("foo_bar")
// or if you have many: ["${mystr}_bar", "baz"]*.toString().indexOf("foo_bar")

(注意那里的明确.toString())。

GString看起来一样(例如它们.toString()的当前状态)String,但它们不是。例如,您可以在 a 中使用闭包GString或调用来生成随机数。他们不像他们的String兄弟那样一成不变或“稳定”。这也是为什么它们不适合作为地图中的键的原因。所以它们相等,但它们的哈希值不同。

于 2021-06-18T05:18:52.473 回答