Ruby语言的并行赋值

并行赋值用于在一条语句中实现给多个变量(或常量)同时赋值。

并行赋值是按位置赋值。

#左侧数量等于右侧数量
a, b = 1, 2
p a, b  # 1 2
#左侧数量小于右侧数量
#右侧所有的值会被打包成数组
a = 1, 2, 3
p a  # [1, 2, 3]

#右侧多余的值会被忽略
a, b = 1, 2, 3
p a, b  # 1 2

#右侧多余的值会被打包成数组
a, b, *c = 1, 2, 3, 4, 5
p a, b, c  # 1 2 [3, 4, 5]
#左侧数量大于右侧数量
#左侧多余的变量会被赋予nil值
a, b, c = 1, 2
p a, b, c  # 1 2 nil

当左侧含有空槽时,空槽也占用一个位置。

#左侧数量等于右侧数量
a, = 1, 2
p a  # 1

#左侧数量小于右侧数量
a, = 1, 2, 3
p a  # 1

#左侧数量大于右侧数量
a, = 1
p a  # 1

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/rubyexp/36680.html

(0)
huoxiaoqiang的头像huoxiaoqiang
上一篇 1天前
下一篇 2小时前

相关推荐

  • Ruby语言的&运算符

    1.用于方法的接收者 此时的 & 运算符称为安全导航(Safe Navigation)运算符。 运算符 描述 接收者&.方法名() 如果接收者为 nil,则不运行方法调用,直接返回 nil。如果接收者不为 nil,则就跟正常方法调用一样。 2.用于方法的参数 使用场景 描述 &块形参名…

  • Ruby语言的数组分解(Decomposition)

    1.用于并行赋值 当右侧为一个数组时,此数组会被“自动解包”。 2.用于函数参数

  • Ruby语言的展开(Splat)运算符

    1.*运算符 * 运算符支持展开任何实现了 to_a 方法的对象。 1.1用于变量赋值 1.2用于函数实参 具体规则参考“用于变量赋值”。 2.**运算符 ** 运算符支持展开任何实现了 to_hash 方法的对象。 2.1用于变量赋值 Ruby 语言不支持用于变量赋值。 2.2用于函数实参

发表回复

登录后才能评论