美文网首页
Ruby参数赋值研究

Ruby参数赋值研究

作者: 二进制_73d1 | 来源:发表于2019-05-07 15:59 被阅读0次

非常特别。

看代码

def fm a,b=2,c

  puts "a:"+a.to_s

  puts "b:"+b.to_s

  puts "c:"+c.to_s

end

def fm2(a,b=2,c=3,d)

  puts "a:"+a.to_s

  puts "b:"+b.to_s

  puts "c:"+c.to_s

  puts "d:"+d.to_s

end

def fm3 *e

end

fm 1,3  #输出1,2,3 正确。也是最少的参数调用。

fm 1,4,3 #就是输出1,4,3

fm2 1,2,3 #输出1,2,3,3(比普通参数个数多一个参数,所以给左边的带默认值的参数,剩下的默认参数使用默认值[第一步],然后其他参数从左到右进行对应[第二步])

fm2 4,3,2,1  #输出4,3,2,1

先计算个数,后赋值,这是其“智能”的匹配方法。

如果所给实参少于普通形参个数,会有异常。刚好则只赋值给普通参数。带缺省值参数使用缺省值。

如果所给实参个数m多于普通形参个数o,但是少于普通参数个数与带缺省值参数个数d之和:

则缺少的个数也就是o+d-m,从右边计算o+d-m,这些无法覆盖的带缺省值的参数使用缺省值,其他的从左到右进行覆盖。

如果超过总个数(m>o+d),有*可变参数,则赋值给可变参数。

相关文章

  • Ruby参数赋值研究

    非常特别。 看代码 def fm a,b=2,c puts "a:"+a.to_s puts "b:"+b.to_...

  • Ruby24

    * 他的功能是高数Ruby把函数的所有参数接收进来,然后放到名为args的列表中 赋值两个变量 在变量的位置赋值两...

  • ES6-函数参数的赋值

    函数参数的解构赋值: 函数参数解构赋值的默认值: 函数参数解构赋值的默认值undefined:

  • ruby入门

    ruby数据类型:Number、String、Bool、Array、Hash 赋值 ruby中的变量,不需要做类型...

  • 重新组织函数 - Remove Assignments to P

    简述 Remove Assignments to Parameters(移除对参数的赋值)指代码对一个参数赋值,以...

  • ES6 2.解构赋值

    解构赋值 解构赋值的分类 数组解构赋值 对象解构赋值 字符串解构赋值 布尔值解构赋值 函数参数解构赋值 数值解构赋...

  • ruby变量

    ruby中多重复值 a, b, c = 1, 2, 3 变量前加上*,表示Ruby会将未分配的值封装为数组赋值给...

  • Jquery

    取值赋值合体:1)html()1.没有参数-取值2.有参数-赋值2)css();1.有一个参数-字符串=》取值-对...

  • ES6解构赋值、交换两个变量的值、设置函数默认值、模板字符串、箭

    1,解构赋值 解构赋值主要包括数组的解构赋值、对象的解构赋值、字符串的解构赋值、函数参数的解构赋值。 (1)数组的...

  • 解构赋值,设置函数默认值,箭头函数

    1,解构赋值 解构赋值主要包括数组的解构赋值、对象的解构赋值、字符串的解构赋值、函数参数的解构赋值。 (1)数组的...

网友评论

      本文标题:Ruby参数赋值研究

      本文链接:https://www.haomeiwen.com/subject/heoeoqtx.html