美文网首页
Ruby 方法的调用

Ruby 方法的调用

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

    方法是有对象定义的与该对象相关的操作. 在 Ruby 中, 对象的所有操作都被封装成方法.

    简单的方法调用

    调用方法的语法如下:

    对象.方法名(参数1, 参数2, ..., 参数n)
    

    如上, 以对象开头, 中间隔着., 后面接着方法名, 方法名后面是一排参数. 不同的方法定义的参数个数和顺序也都不一样, 调用方法时, 必须按照定义来指定参数. 另外, 调用方法时()是可以省略的.

    上面的对象被称为接收者(receiver). 在面向对象的世界中, 调用方法被称为"向对象发送消息(message)", 调用的结果就是"对象接受(receive)了消息". 也就是说, 方法的调用就是把几个参数连同消息一起发送给对象的过程.


    带块的方法调用

    正如each方法, loop方法那样, 方法本身可以与块一起调用, 这种调用称为带块的方法调用.
    带块的方法调用的语法如下:

    对象.方法名(参数, ...) do |变量1, 变量2, ...|
      块内容
    end
    

    do ~ end 部分就是所谓的块. 除 do ~ end 这一形式外, 我们也可以使用 { ~ } 这种形式.

    对象.方法名(参数, ...) { |变量1, 变量2, ...| 
      块内容
    }
    

    如上在块的开头的|~|部分中指定的变量称为块变量. 在执行块的时候, 块变量由方法传递到块内部. 不同的方法对应的块变量的个数, 值也都不一样. 之前的times方法有一个块变量, 执行块时, 方法会从0开始依次把循环次数赋值给块变量.

    100.times do |var|
      puts var
    end
    

    运算符形式的方法调用

    以下形式实际上都是方法

    • obj + arg1
    • obj =~ arg1
    • -obj
    • !obj
    • obj[arg1]
    • obj[arg1] = arg2

    这些虽然与一般的方法调用的语法有点不一样, 但我们可以将obj理解为接收者, 将 arg1, arg2 理解为参数.

    相关文章

      网友评论

          本文标题:Ruby 方法的调用

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