【发布时间】:2021-10-07 06:14:41
【问题描述】:
在 Rust 中,可以使用点来索引元组(例如:x.0),而可以使用方括号来索引数组(例如:x[0])。乍一看,这似乎会使重构现有代码变得更加困难,而没有任何实际目的。但是,我可能只是错过了一些东西。 Rust 的创建者有没有对此发表评论并告诉我们他们为什么选择以这种方式构建语言?
【问题讨论】:
-
Rust 是一种强类型语言。索引切片/数组将始终产生相同的类型,因为整个切片中只能有一种类型。 “索引”一个元组实际上意味着“访问一个字段”,这可能会根据您访问的匿名字段产生不同的类型。可能会出现混淆,因为像 Python 这样的语言允许索引甚至迭代元组,这可以很容易地用鸭子类型的语言完成。投票结束,因为我编辑了问题的基于意见的方法,你颠倒了,所以问题仍然要求意见而不是技术原因
-
@AKX 这可能是原因,但在我看来,与数组的相似性更大。这本书甚至将两者并排介绍,请参阅:doc.rust-lang.org/book/…
-
@user2722968 关于索引的要点。关于编辑:您的编辑使其基于意见,而我最初的问题不是。如果你问“为什么……?”那么这是一个关于意见的问题。如果你问“X 有没有说为什么……?”那么这是一个关于事实的问题。至少原则上可以查明 X 是否曾评论过某事。没有意见。如果我错了,这可能已经在 meta 上讨论过了,我会很感激它的链接。
标签: arrays indexing rust tuples language-lawyer