雖然你已經在程式中寫過字串了,你還沒學過它們的用處。在這章習題中我們將使用複雜的字串來建立一系列的變數,從中你將學到它們的用途。首先我們解釋一下字串是什麼東西。
字串通常是指你想要展示給別人的,或者是你想要從程式裡「導出」的一小段字符。Ruby 可以通過文字裡的雙引號 `"` 或者是單引號 `'` 識別出字串來。這在你以前的 `puts`練習中你已經見過很多次了。如果你把單引號或者雙引號括起來的文字放到 `puts` 後面,他們就會被 Ruby 印出來。
字串可以包含你目前學過的格式化字串。你只要將格式化的變數放到字串中,跟著一個百分比符號 `%` (percent),再緊跟著變數名稱即可。唯一要注意的地方,是如果你想要在字串中通過格式化字串放入多個變數的結果,你需要將變數放到 `[]` 中括號(brackets) 中,而且變數之間用 `,` 逗號(comma)隔開。就像你逛商店時說「我要買牛奶、麵包、雞蛋、湯」一樣,只不過程式設計師說的是”[milk, eggs, bread, soup]”。
另一種方式是使用字串插值 (string interpolation) 這種技巧,將變數注入到你的字串中。方法是使用`#{}` 井號和大括號(pound and curly brace)。與其使用這種格式化字串
~~~
name1 = "Joe"
name2 = "Mary"
puts "Hello %s, where is %s?" % [name1, name2]
~~~
我們可以鍵入:
~~~
name1 = "Joe"
name2 = "Mary"
puts "Hello #{name1}, where is #{name2}?"
~~~
我們將鍵入大量的字串、變數和格式化字串,並且將它們印出來。我們還將練習使用簡寫的變數名稱。程式設計師喜歡使用惱人的隱晦簡寫來節省打字時間,所以我們現在就將提早學會這件事,這樣你就能讀懂並寫出這些東西了。
~~~
x = "There are #{10} types of people."
binary = "binary"
do_not = "don't"
y = "Those who know #{binary} and those who #{do_not}."
puts x
puts y
puts "I said: #{x}."
puts "I also said: '#{y}'."
hilarious = false
joke_evaluation = "Isn't that joke so funny?! #{hilarious}"
puts joke_evaluation
w = "This is the left side of..."
e = "a string with a right side."
puts w + e
~~~
你應該看到的結果
~~~
There are 10 types of people.
Those who know binary and those who don't.
I said: There are 10 types of people..
I also said: 'Those who know binary and those who don't.'.
Isn't that joke so funny?! false
This is the left side of...a string with a right side.
~~~
## 加分習題
1. 遍歷程式,在每一行的上面寫一行註釋,給自己解釋這一行的作用。
2. 找到所有的「字串包含字串」的位置,總共有四個位置。
3. 你確定只有四個位置嗎?你怎麼知道的?說不定我在騙你呢。
4. 解釋一下為什麼 `w` 和 `e` 用 `+` 連起來就可以生成一個更長的字串。
- 笨方法更简单
- 习题 0: 准备工作
- 习题 1: 第一个程式
- 习题 2: 注释和井号
- 习题 3: 数字和数学计算
- 习题 4: 变数(variable)和命名
- 习题 5: 更多的变数和印出
- 习题 6: 字串(string)和文字
- 习题 7: 更多印出
- 习题 8: 印出,印出
- 习题 9: 印出,印出,印出
- 习题 10: 那是什么?
- 习题 11: 提问
- 习题 12: 模组 (Module)
- 习题 13: 参数、解包、参数
- 习题 14: 提示和传递
- 习题 15: 读取档案
- 习题 16: 读写档案
- 习题 17: 更多的档案操作
- 习题 18: 命名、变数、程式码、函式
- 习题 19: 函式和变数
- 习题 20: 函式和档案
- 习题 21: 函式可以传回东西
- 习题 22: 到现在你学到了哪些东西?
- 习题 23: 阅读一些程式码
- 习题 24: 更多练习
- 习题 25: 更多更多的练习
- 习题 26: 恭喜你,现在来考试了!
- 习题 27: 记住逻辑关系
- 习题 28: 布林(Boolean)表示式练习
- 习题 29: 如果(if)
- 习题 30: Else 和 If
- 习题 31: 做出决定
- 习题 32: 回圈和阵列
- 习题 33: While 回圈
- 习题 34: 存取阵列里的元素
- 习题 35: 分支 (Branches) 和函式 (Functions)
- 习题 36: 设计和测试
- 习题 37: 复习各种符号
- 习题 38: 阅读程式码
- 习题 39: 阵列的操作
- 习题 40: Hash, 可爱的 Hash
- 习题 41: 来自 Percal 25 号行星的哥顿人(Gothons)
- 习题 42: 物以类聚
- 习题 43: 你来制作一个游戏
- 习题 44: 评估你的游戏
- 习题 45: 物件、类和从属关系
- 习题 46: 一个专案骨架
- 习题 47: 自动化测试
- 习题 48: 更进阶的使用者输入
- 习题 49: 创造句子
- 习题 50: 你的第一个网站
- 习题 51: 从浏览器中取得输入
- 习题 52: 创造你的网页游戏
- 下一步
- 一个老程式设计师的建议