走近 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"。

本文链接 https://yanbin.blog/close-to-ruby-world-6/, 来自 隔叶黄莺 Yanbin Blog

[版权声明] Creative Commons License 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。

Subscribe
Notify of
guest

1 Comment
Inline Feedbacks
View all comments