Ruby
Luciano9esu
这个作者很懒,什么都没留下…
展开
-
并非只能使用%w(a b c d e f)
并非只能使用%w(a b c d e f),可以把括号换成任何其他字符,譬如 ruby 代码 %w*a b c d* %w-a b c d- %w!a b c d! ....2007-08-13 10:49:53 · 226 阅读 · 0 评论 -
动态改变方法体,领略ruby强大的动态编程能力
ruby 代码 class A def meth pust "old method involked!" s = <<-EOF def meth puts "new method involked!" end EO...2007-09-16 13:15:54 · 117 阅读 · 0 评论 -
Ruby变量作用域的类目录结构(补)
ruby 代码 class A Const = "ok" class B Const = "ko" p Const.object_id end p Const.object_id end 如果你在irb中敲入上面的程序,可以发现,两次的o...2007-09-11 16:53:40 · 142 阅读 · 0 评论 -
Ruby变量作用域的类目录结构
在ruby代码中,变量拥有自己的可视区域,也就是变量的作用域,我们可以把ruby的程序看作是一种类目录结构,根据嵌套的层次,一层层的深入到子目录,子子目录。。。可以认为,模块,类,方法都是目录 例如我们举一个类作为例子: ruby 代码 class A #可以将它看作顶级目录,例如linux下的'/' Const_var = "const variable" #它可...2007-09-11 15:59:36 · 139 阅读 · 0 评论 -
ruby类继承中的方法继承
c# 代码 namespace ConsoleApplication1 { class Test { public static void Main() { B b = new B(); } ...2007-09-11 12:27:35 · 385 阅读 · 0 评论 -
实例方法和类方法(补)
看到一个人这样用module,让我迷糊了半天 ruby 代码 module M def module_method end extend self end 我瞅了半天那个extend self,心想,难道这样子不会引起循环么?每次碰到这句话都给自己建一个单件类,然后在单件类中include M,到了includ...2007-08-31 18:19:04 · 88 阅读 · 0 评论 -
实例方法和类方法(三)
这一次,让我们搞一些破坏性实验,来验证上两次的内容 第一个破坏性实验,module里定义self.xxx方法 ruby 代码 irb(main):001:0> module M irb(main):002:1> def self.method_with_self irb(main):003:2> end irb(main):0...2007-08-31 12:56:32 · 113 阅读 · 0 评论 -
实例方法和类方法(二)
ruby中用mixin技术来把类和module揉起来,例如 ruby 代码 module M def method_defined_in_m end end class A include M end 此时,如果查看,可以发现M中的方法,已经变成了A的实例方法,可以使用以...2007-08-31 11:35:49 · 72 阅读 · 0 评论 -
实例方法和类方法(一)
Ruby中,有两个很重要的对象,一个是Class,一个是Object,虽说在ruby中号称“万物皆对象”,但实际上,Object只是Class的一个实例,而Class是一个增强版的Object(因为Class中除了Object所有的属性外,还拥有其他类特有的属性,例如“方法表”。 1.实例所有的非singleton methods方法都保存在类的“方法表”中,所有的singleton method...2007-08-31 11:01:26 · 136 阅读 · 0 评论 -
Re: 如何用module_eval向class中添加instance variable
ruby 代码 class A def self.has_some_vars(*options) options.each do |var| class_eval(<<-EOS) unless defined? @#{var} @#{var} =...2007-08-29 09:34:05 · 101 阅读 · 0 评论 -
关于单件类
主要资料来自于http://ola-bini.blogspot.com/2006/09/ruby-singleton-class.html 在ruby中我们可以通过五种方式添加class methods ruby 代码 class A def A.meth1 end def self.meth2 ...2007-08-27 19:08:20 · 160 阅读 · 0 评论 -
关于extend和include
ruby 代码 module Action def read end def write end end 首先定义了一个module,采用include和extend都可以将此module引入,module中的方法将作为实例方法。 java 代码 class A ...2007-08-27 12:13:07 · 246 阅读 · 0 评论 -
重新学习Programming Ruby 2nd,读书笔记,不断增加
ruby 代码 1。使用h=hash.new(0)可以把hash中的每一个元素都初始化为0 2。类的实例变量能够在类内部任意位置定义(@xxx),而且可以被类内方法访问。A class variable is shared among all objects of a class, and it is also accessible to Class variables are privat...2007-08-16 10:47:00 · 143 阅读 · 0 评论 -
看到一片老文章,关于cattr_accessor和class_inheritable_accessor
So, cattr_accessor doesn’t work like it should? Posted by Dr Nic on August 27, 2006 Rails’ active_support library adds some wonderful functions into standard Ruby classes. Some we all use day-in-da...2007-08-15 16:18:22 · 139 阅读 · 0 评论 -
动态生成Proc,看了一篇名为The Methodphitamine 的文章
这篇文章中,采用了对to_proc hack的方式实现了一种更加自然语言的方式来编程,例如: ruby 代码 File.read("/etc/passwd").split.sort_by &it.split(":")[2] User.find(:all).map &its.contacts.map(&its.last_name.capitali...2007-08-13 14:17:36 · 98 阅读 · 0 评论 -
偶然搜到DHH给Matz的一封信,关于undef_method和remove_method
Hi, In message "[ruby-talk:01169] undef_method vs. remove_method" on 00/01/23, Dave Thomas <Dave / thomases.com> writes: |OK - I guess I need to understand the source a bit better. What's ...2007-08-13 11:11:37 · 131 阅读 · 0 评论 -
Ruby变量作用域的类目录结构(补二)
ruby中,类中可以定义类,类中可以定义方法,方法中可以定义方法,但是方法中不能定义类。 在前面写的《Ruby变量作用域的类目录结构》和《Ruby变量作用域的类目录结构(补)》中聊到了前两种情况下变量可视域的问题,关于ruby中可以在方法中定义方法这个细节,我也是今天才知道。 首先,ruby的方法中不能定义常量,所以这里只需要考虑实例变量,普通变量,和类变量三种情况 例子一:在irb中敲入以下代码...2007-09-25 13:36:46 · 146 阅读 · 0 评论