ruby高级学习

ruby高级学习

ID:38047729

大小:15.31 KB

页数:5页

时间:2019-05-24

ruby高级学习_第1页
ruby高级学习_第2页
ruby高级学习_第3页
ruby高级学习_第4页
ruby高级学习_第5页
资源描述:

《ruby高级学习》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、RubyonRails学习笔记之三--Ruby核心类一、Array1.实例化1)Array.new2)[值1、值2、值3、值4、值5]3)%w[redgreenbluebalck]自动把字符串列表转成数组,可以省掉引号及逗号。2.方法1)empty?返回true或false2)size返回大小3)first返回第一个4)last返回最后一个5)delete“元素”删除3.技巧:查看类帮助输入命令ri类名例riArray二、Hash:保存键值对1.实例化1)Hash.new2){key=>value,k

2、ey=>value}2.方法1)empty?2)size3)keys:返回所有的key4)values返回所有的value三、String:用单引号或双引号1.要在字符串里包括引号等特殊符号,需要进行转义"2.快捷方式:%Q(字符串)例:%Q(Arniesaid,“I’mback!”)3.在字符串里可以嵌入Ruby表达式#{表达式}例:“当前时间:#{Time.now}”注意这边只能是双引号,单引号会把表达式原样输出4.方法gsub(值1,值2),把字符串里的值1替换成值2include?(值)是否包

3、含slice(0,3)截取四、Numeric:FloatFixnumBignum1.123.integer?是否整数2.12.3.round四舍五入3.8.zero?是否为04.12.to_f转为Float5.11.3.to_i转为Fixnum五、Symbol符号1.相当于字符串,但是没有任何的方法2.相互转换“fox”.to_sym:fox.to_sRuby动态追加类定义Ruby是动态语言,允许随时更改类定义,如我们在定义一个类时,该类已经存在,则此时的定义是对先前类的追加,而不是重新定义.clas

4、sAppledefshowputs"一个苹果"endenda=Apple.new()a.showclassApple#为Apple类追加一个test方法deftestputs"口感不错"endenda=Apple.new()a.showa.test使用特殊类定义为某个对像追加方法和变量.class<

5、改已有对象classString#方法扩展deftest(*args)yield*args<

6、#->"applealives"#普通参数,和花括号代码块同时存在,需要一个括号'a'.test(1,2,3){

7、*x

8、p"callbackresults:#{x}"}#->"callbackresults:[1,2,3,0]"额外的一点是,不能method_missing再调用一个缺失的方法。像英文一样书写代码#II英文似的方法animals_can_fly=['angrybirds','sillyduck']deflet(animal,&action)action.callanimalenddef

9、fly(&action)yieldenddefkeep(state)p"keep#{state}"endlet'angrybirds'do

10、animal

11、fly{keep"heightat8.88km"}ifanimals_can_fly.include?animalend#->"keepheightat8.88km"Ruby实实在在地改变了代码风格!像objective-c一样处理nil对象的消息classNilClassdefmethod_missing(method,*args,&block)p

12、'sendamessagetonil'endendperson=nilperson.laugh'string'.foo#->"sendamessagetonil"#->"'string'missingfoo:[]"#->"sendamessagetonil"Ruby里面全部都是对象,包括nil。最后一行表明,存在一个向上的方法调用链,String#method_missing->NilClass#method_missing

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。