Ruby 程式設計/字串
像 Python、Java 和 .NET Framework 一樣,Ruby 也有一個內建的字串類。
建立字串的一種方法是在 Ruby 程式中使用單引號或雙引號來建立所謂的字串字面量。我們已經使用過我們的 "hello world" 程式。我們對程式碼的快速更新展示了單引號和雙引號的使用。
puts 'Hello world'
puts "Hello world"
能夠使用單引號或雙引號類似於 Perl,但與 C 和 Java 等語言不同,後者使用雙引號表示字串字面量,使用單引號表示單個字元。
那麼 Ruby 中單引號和雙引號有什麼區別呢?在上面的程式碼中,沒有區別。但是,請考慮以下程式碼
puts "Betty's pie shop"
puts 'Betty\'s pie shop'
因為 "Betty's" 包含一個撇號,它與單引號是同一個字元,所以在第二行,我們需要使用反斜槓來轉義撇號,以便 Ruby 理解撇號是在字串字面量中,而不是標記字串字面量的結束。反斜槓後跟單引號稱為 轉義序列。
單引號只支援兩種轉義序列。
- \' – 單引號
- \\ – 單反斜槓
除了這兩個轉義序列之外,單引號之間的所有其他內容都按字面意思處理。
雙引號允許比單引號更多的轉義序列。它們還允許您在字串字面量中嵌入變數或 Ruby 程式碼 - 這通常稱為 插值。
puts "Enter name"
name = gets.chomp
puts "Your name is #{name}"
以下是可以在雙引號中出現的更常見的轉義序列。
嘗試一下這個示例程式碼,以更好地理解轉義序列。
puts "Hello\t\tworld"
puts "Hello\b\b\b\b\bGoodbye world"
puts "Hello\rStart over world"
puts "1. Hello\n2. World"
結果
$ double-quotes.rb Hello world Goodbye world Start over world 1. Hello 2. World
注意,換行符轉義序列(在程式碼的最後一行)只是開始新的一行。
響鈴字元,由轉義程式碼 \a 生成,被認為是 控制字元。它不代表字母、標點符號或任何其他書面符號。相反,它指示 終端模擬器(在 Microsoft Windows 上稱為 控制檯)“提醒”使用者。終端模擬器如何響應的具體細節取決於終端模擬器,儘管 蜂鳴聲是相當標準的。有些終端模擬器會短暫閃爍。
執行以下 Ruby 程式碼,檢視您的終端模擬器如何處理響鈴字元。
puts "\aHello world\a"
我們一直在使用 puts 函式來列印文字。每當 puts 列印文字時,它都會在文字後自動列印一個換行符。例如,嘗試以下程式碼。
puts "Say", "hello", "to", "the", "world"
結果
$ hello-world.rb Say hello to the world
相反,Ruby 的 print 函式只在您指定一個時才打印一個換行符。例如,嘗試以下程式碼。我們在 print 的引數列表末尾包含一個換行符,以便 shell 提示符出現在文字之後的新行上。
print "Say", "hello", "to", "the", "world", "\n"
結果
$ hello-world.rb Sayhellototheworld
以下程式碼產生相同的輸出,所有單詞都連在一起。
print "Say"
print "hello"
print "to"
print "the"
print "world"
print "\n"