Programming Ruby 第二版:英文非扫描版PDF
5星 · 超过95%的资源 需积分: 10 127 浏览量
更新于2024-07-29
4
收藏 5.52MB PDF 举报
"本书是Programming Ruby的第二版英文非扫描版,主要介绍Ruby编程语言。内容涵盖字符串的各种创建机制、转义字符、双引号和单引号的区别、字符串插值以及多行字符串和here document的使用。"
在Ruby编程语言中,字符串是基本的数据类型之一,用于存储文本信息。在Ruby的第二版中,提供了多种创建字符串的机制,每种机制在处理字符串的分隔和内容替换方面有所不同。
1. 单引号字符串('stuff ') 和 `%q/stuff /`:这两种方式产生的字符串进行最少的替换。它们会将`\`转换为一个反斜杠,并且单引号版本还会将`\'`转换为一个单独的引号。所有其他反斜杠都会直接出现在字符串中,不进行其他替换。
例如:
```ruby
'hello' # 输出: "hello"
'a backslash \\\\' # 输出: "a backslash \\"
%q/simple string/ # 输出: "simple string"
%q(nesting (really) works) # 输出: "nesting (really) works"
%q no_blanks_here ; # 输出: "no_blanks_here"
```
2. 双引号字符串("stuff "),以及 `%Q/stuff /` 和 `%/stuff /`:这些类型的字符串会进行更多的替换操作。除了基础的反斜杠转义外,还包括变量插值、特殊字符转义等。例如,`\n` 会被转换为换行符,`\"` 会被转换为双引号,`#{}` 用于插入表达式的值。
示例:
```ruby
a = 123
"\123mile" # 输出: "Smile"
"Say \"Hello\"" # 输出: "Say \"Hello\""
%Q!"I said 'nuts'," I said! # 输出: "I said 'nuts'," I said
%Q{Try #{a + 1}, not #{a - 1}} # 输出: "Try 124, not 122" (假设a仍为123)
%<Try #{a + 1}, not #{a - 1}> # 输出同上
"Try #{a + 1}, not #{a - 1}" # 输出同上
%{ #{ a = 1; b = 2; a + b } } # 输出: "3"
```
此外,Ruby允许字符串跨越多行输入,这样字符串中就会包含换行符。同时,可以使用here document(也称为heredoc)来创建长字符串,这种方式特别适合包含多行文本的情况,如HTML或SQL片段。
Here document的语法如下:
```ruby
<<-END_OF_TEXT
这是多行字符串内容
可以包含换行和特殊字符
END_OF_TEXT
```
这种表示方式会将从"<<"到标识符的部分替换为从下一行开始的所有内容,直到遇到相同的标识符为止。标识符可以是任意非空白字符,但通常推荐使用大写字母。
例如:
```ruby
puts <<-EOS
这是一个
多行
字符串
EOS
```
Programming Ruby 第二版详细介绍了Ruby中的字符串处理,包括各种创建和操作字符串的方法,帮助开发者更好地理解和运用这个强大的编程语言。无论是对Ruby初学者还是经验丰富的开发者,这本书都提供了宝贵的参考资料。
2007-10-04 上传
2009-02-11 上传
2018-03-06 上传
sunzehao
- 粉丝: 0
- 资源: 5