Ruby知识点积累

1. 局部变量、方法参数和方法名称都必须以小写字母或下划线开始;类名、模块名和常量必须以一个大写字母开始。

2. 一个数组中的元素可以是多样的:a=[1, 'cat', 3.14];创建数组的快捷方式:a=%w{a b c d e}。

3. 散列表是以键值对的形式表示的,其中键是唯一的;如果用一个没有包含的键进行索引,会返回nil;创建一个新的空散列表时,可以指定一个默认值:h=Hash.new(0)。

4. 正则表达式:+,重复1次或多次;*,重复0次或多次;\s,匹配空白字符(空格、制表、回车换行等);\d,匹配任何数字;\w,匹配任何字符;.,匹配一个任意字符。

5. =~匹配操作符可以用正则表达式来匹配字符串,有则返回模式的开始位置,无则返回nil;用sub、gsub进行替换:line.gsub(/Perl|Python/, 'Ruby')。

6. Block是Ruby的一个独特特性,可以用作参数,可以用block实现回调、传递一组代码、实现迭代器等;block只是在{}或do...end之间的一组代码;用yield调用相关联的block,可以提供参数给yield调用。

7. 当调用super而不使用参数时,Ruby向当前对象的父类发送一个消息,要求它调用子类中的同名方法;Ruby将原先调用方法时的参数传递给父类的方法。

8. 内部状态保存在实例变量中,通过方法暴露出来的外部状态,称之为属性;类可以执行的其他动作,就是一般方法。

9. 类变量被类的所有对象共享,对一个给定的类来说,类变量只存在一份拷贝,类变量在使用之前必须初始化。

10. %q和%Q分别界定单引号和双引号的字符串;String.chomp去除行尾的回车换行符;String.split分割;String.squeeze修剪重复字符;

11. 在Ruby里,可以给具体的实例对象添加实例方法,这个方法只属于这个实例对象,我们把这样的方法称之为单例方法。单例方法也叫作单件方法,定义单例方法,首先要生成一个实例对象,其次,要在方法名前加上对象名和一个点号“.”。实例方法,属于类的每个实例对象。单例方法只出现在单个实例对象中。用单例方法可以极大地丰富多态性在 Ruby中的表现力。

12. 实例对象不能直接访问protected和private方法;私有方法不能指定对象。protected方法,可以被定义它的类和其子类访问,不能被类和子类的实例对象直接调用,但是可以在类和子类中指定给实例对象;private方法,可以被定义它的类和其子类访问,私有方法不能指定对象。可以根据自己的需要,在程序的不同位置,改变某个方法的访问控制级别,让你的程序更加富于变化。

13. 把功能相关的程序代码放在一个模块里,体现了模块的第一个作用:可以被其它程序代码重复使用。注意用法,模块名::常量名。模块的第二个作用:提供了一个命名空间(namespace),防止命名冲突。模块的第三个作用:实现了类似多重继承的功能。

14. 通过“ < 父类名 ” ,一个子类可以得到父类的属性和方法;通过“ include模块名 ” ,一个子类可以得到某个模块的常量和方法。类不能被 include 。与include 方法相对应的,还有一个 extend 方法。include 方法为一个类的所有对象包含某个模块; extend 方法为一个类的某个对象包含某个模块。

15. 使用 require方法让你的程序文件变得简洁有力。 require方法包含另一个文件,另一个文件名需要是一个字符串。require包含文件,只加载一次,遇到同一文件时自动忽略;不同路径下的同名文件会多次加载。 load包含文件,加载多次,即使是相同路径下同一文件。

16. require,load用于包含文件;include,extend则用于包含模块。
     require加载文件一次,load加载文件多次。
     require加载文件时可以不加后缀名,load加载文件时必须加后缀名。
     require一般情况下用于加载库文件,而load用于加载配置文件。

17. 利用load 多次加载文件的特性,可以用来实现程序的无缝升级和系统的热部署。程序功能改变了,你只需要重新load 一次,其它代码与它再次交互的时候,这个程序实际上已经不是原来的程序了。

18. Ruby的数组大小是动态的,你能够随时增加、删除数组元素。字符串是String类的对象,一般使用字面值来创建。匹配一个正则表达式,用“=~” ,不能用“==”。 “=~”用来比较是否符合一个正则表达式,返回模式在字符串中被匹配到的位置,否则返回nil。不匹配一个正则表达式,用“!~” ,不能用“!=”。 “!~”用来断言不符合一个正则表达式,返回 true,flase。


转载于:https://my.oschina.net/renguijiayi/blog/155939

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值