Footprint

We walk and learn


Project maintained by cellzero Hosted on GitHub Pages — Theme by mattgraham

读书笔记:Ruby基础教程第5版

Ruby version: 2.3.0

CH-04 对象、变量和常量


基本概念

对象

表现数据的基本单位。常用对象包括:

表示对象的种类。常用对象同类的对照表为:

对象
数值 Numeric
字符串 String
数组 Array
散列 Hash
正则表达式 Regexp
文件 File
符号 Symbol

变量

常量

常量(constant)以 [A-Z] 开头。对已经赋值的常量再进行赋值,会发生警告。

预定义常量(pre-defined constant)顾名思义,如 RUBY_VERSION(运行版本)、RUBY_PLATFORM(运行平台)、ARGV(命令行参数)等。

注意 ARGV 是常量,在使用时不可更改。

另外以 _ 开头的即使部分全部为大写内容,依然为变量。如 __NUM__ 为变量,可以重复赋值。但 __LINE__ 等为保留字,无法赋值。

__NUM__ = 1;
__NUM__ = 2;  # => 2
__LINE__ = 1; # => SyntaxError

保留字

| __LINE__ | __ENCODING__ | __FILE__ | BEGIN  | END   |
| alias    | and          | begin    | break  | case  |
| class    | def          | defined? | do     | else  |
| elsif    | end          | ensure   | false  | for   |
| if       | in           | module   | next   | nil   |
| not      | or           | redo     | rescue | retry |
| return   | self         | super    | then   | true  |
| undef    | unless       | until    | when   | while |
| yield    |              |          |        |       |

多重赋值

合并多个赋值操作

a, b, c = 1, 2, 3             # => 1, 2, 3
a, b, *c = 1, 2, 3, 4, 5      # => 1, 2, [3, 4, 5]
a, *b, c = 1, 2, 3, 4, 5      # => 1, [2, 3, 4], 5

交换变量的值

a, b = b, a

获取数组元素

ary = [1, 2]
a, b = ary      # => 1, 2

变量的命名方法

变量名、方法名使用 _ 间隔,如 sort_by_name

类名、模块名使用大写字母间隔,如 HelloWorld


Back