d
(转)http://blog.csdn.net/foreverphoenix/archive/2009/05/06/4155385.aspx
数字
1、 Ruby 支持整数和浮点数。整数可以使任何长度。一定范围内的整数是 Fixnum 类的对象。范围之外的整数存储在 Bignum 类的对象中。这种处理是透明的。
2、 可以在一个 ASCII 字符前加一个问号来获得其对应的整数值。 Ctrl 组合键可以由 ?\C-x 或 ?\cx(x&0x9f) 来产生。 Meta 字符( x|0x80 )可以由 ?\M-x 来产生。
3、 一个带有小数点或 / 和指数的数字字面量被认为是 Float 对象。 Float 对象和本机上的 double 类型大小一样。
4、 Float 精度有限,若需要更好精度的小数,可以使用标准苦中 BigDecimal ,但效率会受影响 。
字符串
1、 字符串字面量中可以放置各种转义序列。字符串分界符的类型决定了要被替换的程度。在单引号字符串中,只识别反斜线和单引号的转义。双引号字符串支持更多的转义字符,还可以使用 #{expr} 把任何 Ruby 表达式的值放进字符串中,其中如果 expr 是全局变量、类变量或实例变量的话,花括号可以忽略。
2、 另外有三种构建字符串字面量的形式: %q (相当于单引号), %Q (相当于双引号), here document 。跟在 q 或 Q 后面的字符是分界符。分界符可以是任何一个非字母数字的单字节字符。字符串被一直读取直到出现下一个相同的(对 ({[< 来说是对应的闭合符号) 分界符。 Here document 由源文件中的那些行但没有包含在 << 字符后面指明终结字符串的行组成。一般情况下终结符必须在第一列出现。如果把一个减号 - 放在 << 字符后面,就可以缩进编排终结符。分隔符可以跨越多行,行结束符以及后续行开始处的空格都被包含到字符串中。
3、 其他用于字符串的分隔符还有 %w(%W) 生成字符串数组, %x 执行 shell 命令, %r 生成正则表达式。
4、 Ruby 字符串是 8 位字节序列。如果处理 Unicode 编码,需要加入以下代码:( jcode 库覆盖了String 类中大多数方法用来处理多字节文本 ) $KCODE='u' require 'jcode'
5 、正则表达式的三种表达方式:1)/regular_expression/ 2)Regexp.new(“regular_expression”) 3)%r{regular_expression}
区间
1、 区间作为序列, ”..” 的形式是创建闭合的区间(包括右端的值), ”…” 的形式是创建半闭半开区间(不包括右端德值)。
2、 可以用自定义的对象来创建区间,条件是这些对象必须实现 succ 方法和 <=> 。
3、 区间作为条件使用,当区间的第一部分的条件为 true 时打开,当区间的第二部分的条件为 true 关闭。两点的 range 在第一次从关变为开时,会立即求解结束条件,并相应地变迁状态。这意味着如果 expr1 和 expr2 在一个调用中都为真,那么两点形式的调用将结束于关状态。不过该调用仍返回真。三点形式的 range 不会在进入开状态后立即求解结束条件。
4、 区间作为间隔,测试某些值是否会落入区间表达的间隔内。使用 === 操作符比较。
数组
1、 数组类的字面量是在方括号间由逗号分隔的一连串对象引用组成的。对于全部是字符串对象的数组,可以用简写形式 %w 和 %W 来构成。 %w 形式将空格隔开的 token 提取为连续的数组元素,在单个字符串内不执行替换。 %W 形式对每个 token 执行和双引号字符串一样的替换规则,空格可以用反斜线转义。
2、 通过 [index] 访问数组元素,第一个元素索引为 0 。索引可以为负值, -1 表示最后一个元素。
散列表
1、 散列表的初始化有两种方式: {} 中用 key=>value 的形式, [] 中连续放置 key,value ,中间用逗号隔开。
2、 散列表中的键如果使用 equ? 比较相等,那么这两个键必定具有相同的散列码。如果把自定义类的对象实例作为 hash 键,那么需要确保 1 )一旦对象被创建,它的散列码就不再改变; 2 )每当键的散列码发生变化时调用 Hash#rehash 方法重新对散列表进行索引。
符号
1、 Ruby 中 Symbol 表示“名字”,比如字符串的名字,标识符的名字。创建一个 Symbol 对象的方法是在名字或者字符串前面加上冒号。每个 String 对象都是不同的,即便他们包含了相同的字符串内容;而对于 Symbol 对象,一个名字(字符串内容)唯一确定一个 Symbol 对象。名字相同,则 Symbol 相同;名字不同,则 Symbol 不同。 Symbol 对象一旦定义将一直存在,直到程序执行退出。所有 Symbol 对象存放在 Ruby 内部的符号表中,可以通过类方法 Symbol.all_symbols 得到当前 Ruby 程序中定义的所有 Symbol 对象,该方法返回一个 Symbol 对象数组。
---------------------------
reference
Ruby字符(串)总结
http://blog.csdn.net/sheismylife/archive/2009/10/09/4646140.aspx