摘要:
1 所有使用def定义的方法都成为当前类的实例方法.2 Module#class_eval()方法会在一个已存在类的上下文中执行一个块:1 def add_method_to(a_class)2 a_class.class_eval do3 def m; 'Hello!'; end4 end5 end6 7 add_method_to String8 "abc".m #=> 'Hello!'3 当self不是一个类时,当前类的角色由self的类来充当.处于顶级作用域时,此时当前类是Object----main对象的类.这也就是为什么当在 阅读全文
posted @ 2014-03-05 20:42
秋叶leaf
阅读(297)
评论(0)
推荐(0)
摘要:
1 块是一种控制作用域(scope)的强大手段,作用域指的是哪些代码可以看到哪些变量和方法.2 只有在调用一个方法时才可以定义一个块.块会被直接传递给这个方法,然后该方法可以用yield关键字回调这个块.3 块中最后一行代码执行的结果会被作为返回值.4 在一个方法中,可以向Ruby询问当前的方法调用是否包含快,可以通过Kernel#block_given?()方法来做到:1 def a_method2 return yield if block_given?3 'no block'4 end5 6 a_method #=> no block7 a_method {&quo 阅读全文
posted @ 2014-03-05 10:30
秋叶leaf
阅读(261)
评论(0)
推荐(0)
浙公网安备 33010602011771号