Ruby 画像ダウンロード編 (4) 文字列の結合 【計算数学 I】

更新日時:

文字列の結合

文字列を素朴に作るためには、ダブルクオーテーションマークで囲う方法と、シングルクォーテーションマークで囲う方法があります。どちらも同じ結果を与えます。 文字列を結合するためには、次の2つの方法があります。

  • + 演算子で結合すると、普通に結合される。
  • ダブルクオーテーションマークで囲われた文字列の中で、 #{変数名} と書くと、変数名が展開される。

後者は、文字列の「結合方法」ではないかもしれませんが、便利な方法です。後者は、シングルクォーテーションマークでは使えません。

Ruby ですと、一般的には、

  • 普段はシングルクォーテーションマークを使い、ダブルクオーテーションマークは必要になったら使う
  • 普段はダブルクォーテーションマークを使い、シングルクオーテーションマークは必要になったら使う (シングルクォーテーションマークのメリットとしては、ダブルクオーテーションマークをエスケープする必要がない)

のどちらか習慣を身につけておくと便利かもしれません。でもこの資料では差が出ないので、全部ダブルクオーテーションマークで通しても問題ありません。

サンプルを示しますので納得しておいてください。3 行目から 5 行目は全く同じ結果を返しています。 バカバカしいと思うかもしれませんが、 6 行目と 7 行目の実行結果は異なります。 当たり前ですが、name という変数と、"name"'name' といった文字列は異なります。実際のプログラムを書くときは注意してください。

irb(main):001:0> name = "葉子"
=> "葉子"
irb(main):002:0> nickname = "葉子様"
=> "葉子様"
irb(main):003:0> name + "は双葉と照から" + nickname + "と呼ばれます"
=> "葉子は双葉と照から葉子様と呼ばれます"
irb(main):004:0> name + 'は双葉と照から' + nickname + 'と呼ばれます'
=> "葉子は双葉と照から葉子様と呼ばれます"
irb(main):005:0> "#{name}は双葉と照から#{nickname}と呼ばれます"
=> "葉子は双葉と照から葉子様と呼ばれます"
irb(main):006:0> 'name' + 'は双葉と照から' + 'nickname' + 'と呼ばれます'
=> "nameは双葉と照からnicknameと呼ばれます"
irb(main):007:0> "#{"name"}は双葉と照から#{"nickname"}と呼ばれます"
=> "nameは双葉と照からnicknameと呼ばれます"

ナビゲーション

この教材は、東京大学理学部数学科専門科目「計算数学 I」のために執筆されたものです。 このサイトに掲載する際に、記事を分けてあります。 他の回はRuby 画像ダウンロード編 一覧 #ks1-ruby-downloadから御覧ください。

Ruby 入門 (計算数学実習資料集)には他の TA が書いた教材があります。

コメントする