加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用splat运算符进行并行赋值在Ruby中工作?

发布时间:2020-12-17 02:46:20 所属栏目:百科 来源:网络整理
导读:letters = ["a","b","c","d","e"]first,*second = lettersfirst # = "a"second # = "["b","e"] 我明白这会产生什么,但无法理解这一点.这基本上是Ruby魔术吗?想不出任何其他编程语言会支持splat运算符的这种类型的赋值. 解决方法 这在函数式语言中是很常见的
letters = ["a","b","c","d","e"]
first,*second = letters
first  # => "a"
second # => "["b","e"]

我明白这会产生什么,但无法理解这一点.这基本上是Ruby魔术吗?想不出任何其他编程语言会支持splat运算符的这种类型的赋值.

解决方法

这在函数式语言中是很常见的,因此Ruby并不孤单.您有一个项目列表,并希望它以头部和尾部分隔,因此您可以对列表的第一个元素执行操作.

这也有效:

letters = ["a",*middle,last = letters

在像Clojure这样的函数式语言中,您会看到如下内容:

(first '(1 2 3)) => 1
(rest '(1 2 3)) => (2 3)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读