一步一步学Ruby(十二):Ruby类
一、类的定义、类的实例方法 二、特定对象的方法 在Ruby里,我们可以为一个对象单独定义方法 三、重定义方法 从下面代码可以看出,后面的定义会覆盖前面的定义 四、重新打开类 Ruby里我们可以再打开一个类,向这类添加方法,有点像C#里的分部类,但不用加特别标记. 我们一般不要拆开类的定义,因为那样不好理解,拆开类的一个原因是将它们分散到多个文件里。 五、实例变量 这个前面有说过,这里补充一下 实例变量主要是用来记录单个对象的状态。Ruby的实例变量有以下特点 以@开头 只对单个对象可见 不管在类的任何地方定义,在别的地方使用都是同一个 六、初始化对象状态 类似其它语言的构造函数 七、更好的属性读写,=号的威力 上面我们可以看到可以用多种方法对属性都写操作,但最熟悉和方便的,还是向其它语言一样,对属性直接赋值,然后读取 语法糖 语法糖就是指特别的规则,不符合常规的写法,Ruby提供了调用写方法的语法糖,当解释器看到age = 时,会忽略等号前面的空格,并且单参数的方法是可以省略括号,所以也可以这样 因为有了=的威力,我们可以在赋值时做自己的处理,有点像.net里的{get;set;} 八、自动生成属性的读写操作attr_* 如果每个简单的属性都像上面那样定义,是一件很繁琐的事情,还好Ruby提供了自动生成读写操作的方法,看下表 方法名
效果
例子
等价的代码 attr_reader
读方法
attr_reader :age
def age
@age
end attr_writer
写方法
attr_writer :price
def age= (age)
@age=age
end attr_accessor
产生读写方法
att_accessor :age
def age
@age
end
def age= (age)
@age=age
end attr
产生读方法和可选的写方法(如果第二个参数是true)
1. attr :age
2. attr :age, true
1. 参见attr_reader
2. 参见attr_accessor 九、类方法 类是特殊的对象,是唯一可以创建新对象的一类对象 定义是,在方法前加上类名 类方法有两种调用方式: Person.oldest() Person::oldest() 十、继承 Ruby里用 < 实现继承 本文作者: 王德水 未经同意,禁止转载
相关文档:
Ruport中pdf_writer对中文的支持并不好,输出的中文显示的是乱码。上网查了很多资料,也没有找到好的解决方案,无奈只好查看源代码,到底为什么Ruport自带的PDF工具不支持中文输出。
Ruport::Formatter::PDF::Writer中找到以下代码
metrics = load_font_metrics(font)
metrics = PDF::Writer: ......
Ruby语言学习系列--基本的ruby语法
1. 基本的ruby语法
1.1 变量、常量和类型
1) 定义变量
变量类型
描述
示例
局部变量(或伪变量)
以小写字母或下划线卡头
var _var
全局变量
以$开头
$ ......
1. 安装Cygwin
运行Cygwin的安装程序。从文见包的的列表中,在DEV里面,确定要选择
• Ruby
• gcc
• subversion
你需要使用gcc来建立Cygwin版本的MySQL.
2. 在windows上面安装MYSQL:
download MySQL 5.0 Windows Installer
3. & ......
Ruby 异常处理
文章分类:Ruby编程 关键字: ruby 异常 异常处理
异常处理是开发过程中经常要面对的问题,基本所有高级语言都有自己的异常处理系统,ruby也不例外,而且使用起来也非常简单。
ruby中异常的抛出是使用的raise方法,记住 ......