上一页 1 2 3 4 5 6 ··· 8 下一页
摘要: 你有多少种方式创建一个方法?大多数人想到的可能是def 关键字 Ruby代码 #普通方法 deftele_you puts"IamAnleb"end#普通方法def tele_you puts "I am Anleb"endRuby代码 #定义单件方法 n="Anleb"defn.tell_you puts"Iam#{self}"endn.tell_you#定义单件方法n="Anleb"def n.tell_you puts "I am #{self}"endn.tell_y 阅读全文
posted @ 2013-03-16 19:38 Anleb 阅读(3502) 评论(2) 推荐(3) 编辑
摘要: 我们知道顶级域,定义域的self是啥?puts self #mainputs self.class #Object我们知道当一个方法被调用的时候,如果没有对象接受,默认就是self,如:def tell_me_who puts selfendtell_me_who #main方法调用是这样的步骤,先查找当前对象的所在类的实例方法存在方法与否,如果存在,调用方法,如果不存在则查看superclass,直到 BasicObject都没找到对于方法的话,就会调用Kernel的method_missing()方法,并且报错,如Error:test.rb:8: undefine: unde... 阅读全文
posted @ 2013-03-16 19:35 Anleb 阅读(1790) 评论(0) 推荐(0) 编辑
摘要: 1.先看字符串的object_idstr1="Anleb"str2="Anleb"puts str1.object_idputs str2.object_id输出: 22952500 22952490 id不同说明,虽然对象的值一样,但是他们是不同的东西,什么是不同的东西,也就是指针不同。 str1指针----> 对象 str2指针----> 对象 题外话:不像咱们的c#、java有字符串驻留技术,ruby没有驻留技术的String对象,但是有驻留技术的Fixnum,false,true,不信,我实验给你看s1=falses2=falses3 阅读全文
posted @ 2013-03-16 19:34 Anleb 阅读(467) 评论(0) 推荐(0) 编辑
摘要: class A def self.ask1 puts "the method of class" end def ask2 puts "the method of instance" endend#类的实例对象的方法,方法属于类所生成New出来的实例对象。 p a.methods.length p a.class.instance_methods.length p A.instance_methods.length p a.public_methods.length p a.class.public_instance_methods.leng... 阅读全文
posted @ 2013-03-16 19:31 Anleb 阅读(2667) 评论(0) 推荐(0) 编辑
摘要: n=[1,2,3,nil,nil]p nn1=n.compactp n1n2=n.compact!p n2p n主要是交流,水平有限,喜欢研究,多多包涵。 先说一个数组循环问题 arr=[1,2,3]n=arr << arrp n输出: [1, 2, 3, [...]] 分析: << 传进去的是一个arr指针 # =>[1,2,3,arr] 其实这是一个循环,真实的值是:[1,2,3,[1,2,3,[1,2,3,[1,2,3,........]]] arr[3]=arr arr[3][3]=arr ruby数组比较常用的方法: 1.at方法 arr=[1,2,3] 阅读全文
posted @ 2013-03-16 19:30 Anleb 阅读(790) 评论(0) 推荐(0) 编辑
摘要: 1.先看私有方法能否被继承class A @@name="Anleb" def ask puts @@name end private :askenda=A.new#a.aska.send(:ask)class B < A endb=B.new#b.askb.send(:ask)结论:对于private方法,是被继承的,类变量(类似于静态变量,属于所有实例),也是可以被继承的。 2.看类的方法能否被继承 题外话:private影响谁? class A private def self.ask puts "class... 阅读全文
posted @ 2013-03-16 19:27 Anleb 阅读(2884) 评论(0) 推荐(1) 编辑
摘要: class Fixnum attr_accessor :valueendx=1p x.object_idx.value="Anleb"p x.value.object_iddef change(x) p x.object_id p x.value.object_id x=2 #指针改变 x.value="Mr.w" p x.object_id p x.value.object_id #x改变的指针在这里被GC回收endchange xp xp x.valuep x.object_idp x.value.object_id打印... 阅读全文
posted @ 2013-03-16 19:25 Anleb 阅读(272) 评论(0) 推荐(0) 编辑
摘要: irb(main):022:0* 1.next=> 2irb(main):023:0> "a".next=> "b"irb(main):024:0> "1".next=> "2"irb(main):025:0>性能比较:require 'benchmark'n=(1..1000000).to_adef num_next(first,last) while first != last first=first.next end enddef num_join(firs 阅读全文
posted @ 2013-03-16 19:24 Anleb 阅读(402) 评论(0) 推荐(0) 编辑
摘要: ary=[1,2,3]ary.each do |i| puts i i+=1 redo if i==2end#输出:1223redo做的动作是:条件满足,则以当前的条件重复一次{ block}的动作,当前的条件包括(当前的变量值)ary=[1,2,3]ary.each do |i| puts i i+=1 retry if i==2end#输出:死循环1 这里我们没有看到 i+=1,输出 2,说明,retry的重复动作包括从{block}外开始,包括i的值。 阅读全文
posted @ 2013-03-16 19:21 Anleb 阅读(1864) 评论(0) 推荐(0) 编辑
摘要: #关闭命令显示@echo off#提示信息echo Now,listing the controller,please not shutdown the DOS File!#切换到当前路径,.bat文件和.rb文件放在一起就可以了set pa=%cd%#执行ruby脚本ruby test.rbpause当我们利用cmd命令执行:ruby test.rb的时候,你可能会发现,我们需要cd 到test.rb的目录,可以利用DOS命令实现这个 路径,这样无论你的脚本在哪,批处理调用ruby test.rb都不会报错。 阅读全文
posted @ 2013-03-16 19:19 Anleb 阅读(603) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 8 下一页