美文网首页Ruby & Rails
Ruby中的动态方法

Ruby中的动态方法

作者: 柳辉 | 来源:发表于2018-03-23 08:29 被阅读20次

一、什么是动态方法?
这就要从静态语言和动态语言的区别说起,静态语言比如Java,在编译阶段就需要运行对象调用的所有方法,而动态语言,只需要真正调用方法的时候才运行这个方法。

举个例子:

class box
  def open_1
    puts "hello"
  end
  def open_2
    puts "world"
  end
end

box = Box.new
box.send('open_#{num}')

上面是用Ruby写的“打开不同魔法盒,就显示不同的字“的需求
用静态语言写,就要这样写:

class box
  def open(num)
    case num
      when 1;puts("hello")
      when 2;puts("world")
    end
  end
end

box = Box.new
box.open(1)

二、为什么要用动态方法?

三、怎么用动态方法?
直接在对象后面加上动态方法,参数是静态方法名

资料来源:
https://ruby-china.org/topics/4313
https://blog.csdn.net/u011345213/article/details/42167763

相关文章

  • Ruby中的动态方法

    一、什么是动态方法?这就要从静态语言和动态语言的区别说起,静态语言比如Java,在编译阶段就需要运行对象调用的所有...

  • 我眼中的元编程-方法篇

    Ruby是一门动态语言,动态创建与调用方法是其中一个体现。 动态方法 动态调用方法(动态派发) 动态调用方法,是指...

  • Ruby元编程笔记 - 方法

    Dynamic Method 通过send()去动态调用方法: 在Ruby2.2.2中,send()依然可以调用私...

  • Ruby的动态特性

    Ruby动态特性的体现 动态执行字符串形式的代码。 动态获取模块或类中的常量和变量值 动态为类或者对象添加方法 对...

  • Ruby动态方法初探

    1.方法的动态调用 为何Ruby如此先进,为何它元编程能力这么强大,得益于它能够运行时生成需要的代码,或者调用相应...

  • 译:Ruby动态方法

    通常情况下,我们使用关键字def来定义方法。但是当有一系列方法具有相同的结构和逻辑时,继续这样做未免显得有些重复并...

  • Ruby动态删除方法中的打印语句

    0. 前言及需求 运行时动态编程也算是Ruby的卖点之一,心血来潮想要尝试一下我是否能够在运行时动态对Ruby原有...

  • Ruby 语言进阶

    Intro to Ruby (Ruby 基础) 什么是ruby?ruby是动态的(没有固定的类型),反射性的,面向...

  • 器-用:ruby高效能方法 — reduce方法

    一、reduce方法的作用 reduce方法是ruby中的一个重要的方法,也叫inject方法(Ruby1.9之前...

  • Ruby中的*eval方法

    摘要 instance_eval:运行时,代码块的接受者会变成self。(84页)class_eval:在一个已存...

网友评论

  • IT人故事会:喜欢能坚持更新博客,已经关注!
    柳辉:这个我尽力啊,最近在找Ruby相关的工作,找到了更新就频繁了

本文标题:Ruby中的动态方法

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