【问题标题】:Is there language with such implementation of lists?是否有这样的列表实现语言?
【发布时间】:2020-04-01 06:21:48
【问题描述】:

是否存在将整数变量通过引用而不是值存储在列表/数组中的语言? 即

a = 1
l = [a]
print(l) # [1]
a += 1
print(l) # [2]

【问题讨论】:

  • 表达不正确。
  • 您建议的语义有什么好处?特殊情况似乎有点尴尬(例如,某些操作仅在列表有一个元素时才有效)。
  • 哪些操作?我想看看这种假设语言的优点和缺点,因为我自己想象的太少了。
  • [] + [] == []; [] + [1] == [1]; [1, 2] + [1] == [1, 2, 1]。列表加入甚至适用于空列表。我无法理解你的例子。
  • 我误解了你原来的语义,所以我删除了我的其他 cmets。那是我的错。

标签: arrays list language-design


【解决方案1】:

我想不出任何语言可以为数字和布尔值等立即类型执行此操作。如果数字是可变对象,性能会变得非常糟糕。如果数字是堆上的可变类型,则 GC VM 的性能会变得非常糟糕。

我见过有人用 OO 语言伪造这种功能。看到这个帖子。 Square bracket [] operator overloading c++

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    相关资源
    最近更新 更多