在 Ruby 中使用元组?
有人在 Ruby 中使用元组吗? 如果是这样,如何实现元组? Ruby 哈希很不错,而且几乎同样有效,但我真的很想看到类似 Python 中的 Tuple 类的东西,您可以在其中使用 .
表示法来查找您正在查找的值。 我想要这个,以便我可以创建 D 的实现,类似于Dee 用于 Python。
Does anyone use tuples in Ruby? If so, how may one implement a tuple? Ruby hashes are nice and work almost as well, but I'd really like to see something like the Tuple class in Python, where you can use .
notation to find the value for which you are looking. I'm wanting this so that I can create an implementation of D, similar to Dee for Python.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
OpenStruct?
简要示例:
OpenStruct?
Brief example:
基于您谈论哈希和 . 我假设您指的是与
(1. "a")
排序不同类型的元组。 您可能正在寻找Struct
类。 例如:Based on the fact that you talk about hashes and . notation I'm going to assume you mean a different kind of tuple than the
(1. "a")
sort. You're probably looking for theStruct
class. eg:虽然这不是严格的元组(不能对成员进行点表示法),但您可以从列表中分配变量列表,这通常可以解决当您在处理一系列变量时 ruby 传递值的问题。返回值。
例如
While this isn't strictly a tuple (can't do dot notation of members), you can assign a list of variables from a list, which often will solve issues with ruby being pass-by-value when you are after a list of return values.
E.g.
数组用作元组很酷,因为解构
Struct 为您提供了方便的
.
访问器您可以使用
to_ary
获得两全其美的便利Arrays are cool to use as tuples because of destructuring
Struct give you convenient
.
accessorsYou can get the convenience of both worlds with
to_ary
我是 Gem for Ruby tuples 的作者。
为您提供了两个类:
Tuple
Pair
特别情况您可以用不同的方式初始化它们:
这两个类都有一些辅助方法:
length
code> /arity
- 返回元组first
/last
/second
内值的数量(仅对) -它返回一个相应的元素[]
,使您可以访问特定元素I'm the author of Gem for Ruby tuples.
You are provided with two classes:
Tuple
in generalPair
in particularYou can initialize them in different ways:
Both of the classes have some auxiliary methods:
length
/arity
- which returns number of values inside tuplefirst
/last
/second
(only pair) - which returns a corresponding elements[]
that gives you an access to a particular elements你可以用这个技巧来模拟 Scala 元组:
但是在这里你不能进行解构:
但是多亏了这个技巧: https://gist.github.com/stevecj/9ace6a70370f6d1a1511
解构将起作用:
You can mock the Scala tuples with this trick :
but here you can't have destructuring:
But thanks to this trick : https://gist.github.com/stevecj/9ace6a70370f6d1a1511
destructuring will work:
您可以通过解构执行类似的操作:
这会按预期打印出
3
。You can do something similiar with destructuring:
This prints out
3
as expected.