Programming Ruby 第二版:英文非扫描版PDF

5星 · 超过95%的资源 需积分: 10 121 下载量 120 浏览量 更新于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初学者还是经验丰富的开发者,这本书都提供了宝贵的参考资料。