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’的方式。

应该说用这个写个单例模式关键字用的太多了。。。,不喜欢这点

访问控制的级别也是三种,但是语法不同,放在最后声明的方式比较优雅点。