美文网首页
Ruby 关于方法调用的一些补充

Ruby 关于方法调用的一些补充

作者: changsanjiang | 来源:发表于2017-10-20 20:10 被阅读5次

    把数组分解为参数

    在调用方法时, 如果以*数组这样的形式指定参数, 这时传递给方法的就不是数组本身, 而是数组的各元素被一次传递给方法. 但需要注意的是, 数组的元素个数必须要和方法定义的参数个数一样.

    def foo(a, b, c)
      a + b + c
    end
    
    p foo(1, 2, 3)     #=> 6
    args1 = [2, 3]
    p foo(1, args1)    #=> 6 
    args2 = [1, 2, 3]
    p foo(*args2)      #=> 6
    

    把Hash作为参数传递

    我们用{ ~ }来表示Hash, 将Hash作为参数传递给方法时可以省略{}

    def foo(arg)
      arg
    end
    
    p foo({"a" => 1, "b" => 2})
    p foo("a" => 1, "b" => 2)
    p foo(a: 1, b: 2)
    

    其实关键字参数就是模仿这种散列作为参数传递的写法而设计出来的. 使用关键字参数定义方法, 既可以对键进行限制 又可以定义参数的默认值. 因此建议大家在实际编写程序时, 尝试使用关键字参数.

    相关文章

      网友评论

          本文标题:Ruby 关于方法调用的一些补充

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