`
dongsx
  • 浏览: 6877 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表
http://blog.jiaeil.com/noteit/2010/05/16/digging-ruby-instance_eval-and-class_eval/
1.语言中变量的实质 要理解C指针,我认为一定要理解C中“变量”的存储实质, 所以我就从“变量”这个东西开始讲起吧! 先来理解理解内存空间吧!请看下图: 内存地址→  6      7   8      9   10      11      12       13 ----------------------------------------------------------------- 。。。 |   |   |   |   |  |   |   |.。 ------------------------------- ---------------------------- ...
@shared = 100 class MyClass   class << self     attr_accessor :shared   end end class MyClass_2 < MyClass   @shared = 500 end p MyClass.shared    ---> nil MyClass.shared = 1 p MyClass.shared    ----> 1 p MyClass_2.shared   ---> 500 首先在Object类中定义了一个实例变量shared,而访问MyClass.shared的时候发 ...
一直以来感觉require和include总是name的难以理解,趁着今天有时间好好的理顺了一番 ruby中在一个model中不可以引用另外一个model,我们可以通过使用require,引入一个新 的model,然后通过操作这个model的其他方法实现我们想要实现的东西。对于include其实我 感觉有点继承的味道,一般要先把某个类引入进来,也就是说require 'xxoo.rb'然后在 include Module1,注意include后面一定是不能带引号的.对于include进来的Module,我们可以 直接使用其方法 include将命名空间(模块)的功能添加到当前空间中,exten ...
class [scope::] classname[<superexpr] body end class<<obj body end Ruby中类定义通过执行类代码体创建或者扩展Class的对象。 在第一种形式中,一个命名类将被创建或者被扩展。生成的Class对象被赋值给名为classname的常量。这个名字应该以一个大写字母打头。在第二种形式中,一个匿名单例类会和指定的对象相关联。 在方法体内,随着定义代码的读入,大多数的Ruby表达式将被执行,然而: 方法定义将在类的对象的一个表中注册该方法。 嵌套的类和模块定义将被存储在类的常量中,而不是全局常量中。在定义嵌套的类或者模块 ...
ruby的变量和常量含有对象的引用。变量本身没有内在的类型。变量的类型仅仅由变量引用的对象所能响应的消息决定。 ruby中常量也是对对象的引用。常量在第一次被赋值的时候创建,和别的语言不同,ruby允许你改变常量的值。 OUTER_CONST = 99 class Const def get_const p "-ssssssssssssssssss---" CONST end p "------------------" CONST = OUTER_CONST + 1 end p Const.new.get_const p Const::CONST p ...
在表达式中,当ruby看到象a这样子的名字,它就需要判断a是一个全局变量引用还是一个对没有参数的方法a的调用。ruby中使用了一种启发式的方法来判断这种情况。当ruby解析源代码文件时,它会记录所有已经被复制的符号,它认为这些符号式变量,如果没有记录,则认为是方法。 def a print "Function 'a'" 99 end for i in 1..2 if i == 2 print "a=", a, "\n" else a = 1 print "a=", a, "\n" end end ...
Global site tag (gtag.js) - Google Analytics