`
mike.gao
  • 浏览: 49554 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ruby中 respond_to? 和 send 的用法

阅读更多
   
 obj = Object.new
 if obj.respond_to?("talk")
   obj.talk
  else
    puts "Sorry, object can't talk!"
 end



      print "Search for: "
      request = gets.chomp
      if request == "writer"
      puts book.writer
      elsif request == "press"
      puts book.press
      elseif request == "date"
      puts book.date
      ......

以上方法可用send方法代替
      request = gets.chomp
      if book.respond_to?(request)
      puts book.send(request)
      else
      puts "Input error"
      end
分享到:
评论
1 楼 zhaomingyuan7 2014-12-26  
表示看不懂

相关推荐

    patch_def_ruby_Metaprogramming_Before_

    send(before_method, *args) if respond_to?(before_method) original_method.bind(self).call(*args) end end end ``` 在这个实现中,`instance_method`用于获取原始方法的未绑定版本,`define_method`则用于...

    iron-dsl:Gem 为在 Ruby 中创建 DSL 提供了更好的工具

    创业板:铁DSL 作者:Rob Morris @ ... 它类似于标准库中的 BasicObject,但具有诸如 #respond_to? 和 #send 是任何真正的 DSL 构建工作所需的。 您可以使用 DslBuilder 或任何其他类作为 DSL 系统的基础。 在任何情况

    ruby导出csv文件

    这个`export_csv`方法从数据库中获取所有用户,然后通过`respond_to`根据请求的格式(在这种情况下是CSV)生成并发送数据。`render_to_string`用于将视图模板渲染成字符串,`send_data`则将这个字符串作为CSV文件...

    Ruby编程,实用程序员指南Programming Ruby, The Pragmatic Programmer's Guide

    - **动态方法调用**:通过`send`和`respond_to?`方法实现动态方法调用。 - **代码生成**:使用`eval`函数在运行时生成代码。 - **动态类和方法定义**:使用`class_eval`方法动态定义类和方法。 #### 3.3 并发编程 -...

    Ruby学习思维导图.pdf

    - **Object#respond_to?**:检查是否可以调用某个方法。 - **Object#method**:获取方法对象。 - **Object#class_eval**:在类的上下文中执行代码。 - **Object#instance_eval**:在对象的上下文中执行代码。 #### ...

    Ruby程序设计(简洁清新的教程)

    Ruby有一些特殊的类和方法,如`Object`类是所有类的基类,`Kernel`类包含常用的基本函数。 **3.5 类变量与类方法** 类变量以`@@`开头,可在所有实例间共享;类方法则使用`self`关键字定义: ```ruby class ...

    telegram_cli_wrapper:Telegram 命令行界面的包装器

    TelegramCliWrapper用法下载、安装telegram-cli并以守护进程模式运行telegram-cli -k tg-server.pub -d -P 2392 --json telegram = TelegramCliWrapper . new port : 2392 , host : 'localhost'telegram . ...

Global site tag (gtag.js) - Google Analytics