走近 Ruby 的世界(六)

对于 Block,可以用 {} 或 do...end 来调用,如:

一般是多行时用 do...end,单行时用 {}

但对于 module、class、method 的声明不能像 C/Java 那样用 {},要用 ...end 来定义。

Ruby 的文件结构

字符码码的注释,对于 Emacs 用户可写成 # -*- coding: utf-8 -*- 。冒号可写成 等号,即 coding = utf-8。字符集是大小写不敏感的,写成 uTf-8 也行。

Ruby 又分源代码编码(Source Encoding) 和 默认外部编码(Default External Encoding)。源代码编码就是前面讲的,默认外部编码是脚本存文件时用的编码,这影响到了 Ruby 解释器要怎么读入它,执行时可用命令来指定:

#ruby -E utf-8
#ruby -Eutf-8
#ruby --encoding utf-8
#ruby --encoding=utf-8

和其他的脚本代码一样,Ruby 脚本是从前至尾执行的,没有 main() 这样的玩意,但如果你的脚本中有 BEGIN 这样的块,就会先执行 BEGIN 块中的代码,然后再从头至尾,最后执行 END 块,例如:

执行结果为:

123
over
456

最后,如果有 END 就执行 END 块。BEGIN 和 END 块可有多个,多个时,BEGIN 块按出现的顺序执行,END 块却按与出现的相反顺序执行。

Ruby 脚本执行在遇到下面几种情况结束:

1. 执行了一条语句导致程序的结束,例如 exit!
2. 到达了文件的末尾
3. 遇到了 __END__

可以给 Ruby 脚本用 at_exit 函数加上退出时的勾子,即 "shutdown hook"。

类别: Ruby. 标签: , . 阅读(47). 订阅评论. TrackBack.

Leave a Reply

Be the First to Comment!

avatar