Programming.Ruby 学习笔记(2、3章)
ruby 对单引号和双引号的字符处理是不一样的。
(1)双引号可以应用到转义字符
(2)双引号内的字符串可以通过#{varname}进行变量替换,如果是全局变量或者实例变量不需要{}符号。------不是很懂这两个变量的区别
nil 在ruby中也是对象,只是他表示的是什么也没有。
ruby的控制结构语句没有花刮号,用end表示结束。
ruby中数值类型是不可变的,也就是传的值,不是引用。
3章,开始就说了对象的定义
ruby类的定义中的构造函数是initialize函数,初始化一个新对象是xx.new,ruby的tostring方法是to_s。
ruby添加一个新方法也太high了,只要直接添就好,和js有比的灵活性。
ruby的继承是使用<符号,super调用父类的同名方法。
ruby的@实例变量等同于private的字段,没法再外部访问,要访问就必须定义类似属性的方式建个方法返回。attr_reader :name,:age,:sex,attr_reader
是简化这种操作的关键字。这个实际是一个方法,这个是ruby元编程的一个表现,会动态替传进来的参数生成方法。
def name=(name)
@name=name
end
这是定义可写属性的方法,记住是以=结束。
类变量以@@声明,相当于静态方法,也是私有,如果需要被外部访问,必须ClassName.Var()开放访问。
导入外部的文件采用load ‘xxx.rb’的方式。
应该说用这个写个单例模式关键字用的太多了。。。,不喜欢这点
访问控制的级别也是三种,但是语法不同,放在最后声明的方式比较优雅点。