1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ruby】シングルクオート、ダブルクオートの使い分け

Last updated at Posted at 2024-11-06

はじめに

Rubyでは文字列を作る際に、シングルクオート(')、またはダブルクオート(")で囲む方法が存在します。ちらっと調べると、「どちらでも良い」と書かれており、「どちらでも良い」が一番柔軟かつ困ることだなあと思ったので、調べてみようと思いました。

明確に異なる点

\n 改行文字など(バックスラッシュ記法)を使用する場合

puts 'りんご\nゴリラ\nらっぱ'
#=> りんご\nゴリラ\nらっぱ

puts "りんご\nゴリラ\nらっぱ"
#=> りんご
#   ゴリラ
#   らっぱ

他にも\s 空白文字や、\t タブ文字もよく使用するが、シングルクオーテの場合そのまま文字列と見なされてしまう。

#{変数} 式展開を使用する場合

name = 'パンダ'

puts "しりとりの続きは#{name}です"
#=> しりとりの続きはパンダです

puts 'しりとりの続きは#{name}です'
#=> しりとりの続きは#{name}です

# シングルクオーテを使用したい場合このように書ける
puts 'しりとりの続きは' + name + 'です'
#=> しりとりの続きはパンダです

この場合もシングルクオーテではそのまま文字列とみなされてしまう。
+演算子を使用する書き方は、記号が多く登場してしまうのでダブルクオーテでの式展開の書き方の方が読み書きしやすい。

その他の記述

逆に機能を打ち消したい場合

puts "りんご\\nゴリラ\\nらっぱ"
#=> りんご\nゴリラ\nらっぱ
name = 'パンダ'

puts "しりとりの続きは\#{name}です"
#=> しりとりの続きは#{name}です

バックスラッシュ記法や、式展開の手前に \ バックスラッシュをつける

文字列の中でシングルクオーテやダブルクオーテを使用したい場合

puts 'He can\'t say, "Hello, World."'
#=> He can't say, "Hello, World."

puts "He can't say, \"Hello, World.\""
#=> He can't say, "Hello, World."

シングルクオーテやダブルクオーテの手前に \ バックスラッシュをつける

最後に

私の現在の開発現場では、文字列の中に ”式展開が記述されている” がわかりやすいからという理由で「ダブルクオートを使う必然性がない場合は、シングルクオートを使おう」というコーディング規約です。皆さんの考え方や捉え方など教えていただけると嬉しいです!
ご指摘や、その他ご意見などあれば是非コメントお待ちしております!

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?