
Ruby_原创区
lslxdx
个人主页: http://www.lslxdx.com
Github: https://github.com/lslxdx
展开
-
Ruby中类变量和实例变量的定义及继承
Ruby中类变量可以在method外和method内定义,可以被继承;而实例变量只能在(实例)method中定义,且不可以被继承。实验代码如下:class P @@cv1=1 @var1=11 def mp @@cv2=2 @var2=22 puts @var1,@var2,@@cv1,@@cv2 endendp=P.newp.mp原创 2013-07-28 19:29:54 · 1578 阅读 · 1 评论 -
Ruby 1.9的lambda新语法
l1 = lambda{print "l1"}l1 = lambda{print "l1"}l1.call # l1l2 = lambda{|n| print "l#{n}"}l2.call(2) # l2l3 = ->{print "l3"} # l3.call # l3l4 = ->(n){print "l#{n}"}l4.call(4) # l4l5 = ->(){原创 2014-01-13 18:13:59 · 1330 阅读 · 0 评论 -
Ruby中,类方法和实例方法的一个有趣的例子
ruby 类方法 实例方法 单例类原创 2013-09-26 00:25:28 · 1857 阅读 · 0 评论 -
Ruby中,&:(ampersand-colon,"与号-冒号")的用法
Ruby &: 缩写形式原创 2013-09-25 00:15:56 · 2438 阅读 · 0 评论 -
Ruby中,在method外和method内定义的@变量是不同的
class M @@mv=2 @miv=1 def M.m1 puts "m1",@@mv,@miv end def m1 @miv=2 puts @miv endendM.m1puts "--------"m=M.newm.m1puts "--------"M.m1原创 2013-07-28 19:54:39 · 1243 阅读 · 0 评论 -
Ruby中,next,break,return在block中的使用
Ruby中的block用途广泛,功能强大,在block中可以使用next、break、return三种特殊的的操作,这三种操作的功能相似却存在细微差别,正确区分这三种操作的具体作用,是Ruby学习过程中必须掌握的。原创 2013-09-09 19:58:19 · 3321 阅读 · 0 评论 -
Ruby中,在方法中定义类方法或实例方法的举例
class C def instance_method p "instance_method" #在实例方法中定义的另一个实例方法 def another_instance_method p "another_instance_method" end another_instance_method #在实例方法中定义的类方法 d原创 2013-09-03 00:09:18 · 1282 阅读 · 0 评论 -
Ruby中,实例方法可以隐式使用类变量,但是必须显式使用类方法
class C @@Const1=1 Const2=2 @@var3=3 def self.m p @@Const1,Const2,@@var3; end def m2 p @@Const1,Const2,@@var3; C::m #ok #m #error:undefined local variable or method `m'原创 2013-08-19 20:43:18 · 1234 阅读 · 0 评论 -
点号(.)和双冒号(::)在方法调用中的区别
在Ruby中,可以使用点号(.)和双冒号(::)调用方法,仅当被调用的方法名字以大写字母开头时,二者存在区别。使用双冒号(::)方式调用方法时,若方法名字的首字母是大写,且调用时无括号,则1、若调用者是class或module,则该方法会被误当做常量;2、若调用者是类实例,则报语法错误; 实验代码如下: class C attr_accessor :Const原创 2013-07-28 17:59:38 · 4278 阅读 · 0 评论 -
Rails中delegate用法
class C attr_accessor :obj delegate :size, :to => :objendc=C.newc.obj=[1,2,3]c.size # 3原创 2014-08-11 15:19:55 · 1482 阅读 · 0 评论