質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

3回答

3207閲覧

【Rails/Ruby】シングルコーテーションを使用する人が多い理由

renessa

総合スコア4

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2021/09/27 01:58

編集2021/09/27 01:59

不明点

なぜみなさんはシングルコーテーションをメインで使用しているのでしょうか?

経緯

現在Railsを使用して学習しておりますが、
参考書、qiita、gemの記述では、シングルコーテーションが多く使用されております。

シングルコーテーションを使用するメリットというか、
ダブルコーテーションをメインで使用しない理由が分かりません。
昔からプログラムに触れていた人の慣習のようなものなのでしょうか?

認識

ダブルコーテーションとシングルコーテーションの違いは以下だと認識しています。

  • 改行文字列はダブルコーテーションを使用する
  • 変数展開ではダブルコーテーションを使用する

こうして見ると、ダブルコーテーションを使用するのはメリットしかないように見えます。
あと個人的にダブルコーテーションはタイピングしやすいというのがあります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

どちらでも良い場合の話ですよね?

「ライブラリがそうなっているから」「Rubocopのデフォルトだから」「他の人が使っているから」等、他者依存の理由がほとんどだと思いますが、他には、
・「ダブルクォートでくくられている場合は、エスケープシーケンスか式展開が使われているぞ」と明示できる(敢えて区別したい)
・itagakiさんの挙げている、USキーボードで押しやすい(これは大きい理由だと思います)
とかですかね。

私は、
・シングルクォートは左右非対称のフォントが多いので対称的な用途で使うのは見苦しい
・上記の「敢えて区別したい」という気持ちがない
・式展開を入れたくなったときに変更しなくて良い
とかで、ダブルクォートを使っています。
普段使っているフォントでシングルクォートが左右対称なら違う選択をしたかも知れませんが、そのためにフォントを探して変えるほどのモチベーションは無い。

投稿2021/09/27 03:50

otn

総合スコア84421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

renessa

2021/09/28 01:35

回答ありがとうございます。 認識の通り、どちらでも良い場合の話です。 フォントによって、左右非対称だったりするのですね。 デフォルトのフォントを使用していたため、初めて知りました。 自分は今、プログラミングの学習中でこれから 現場に行って開発する際、コードの統一はしなければならないと思うので、 Rubocop基準の書き方で慣れて行こうかなと思います。
otn

2021/09/28 09:58

> デフォルトのフォントを使用していたため、初めて知りました。 へえ。左右対称のフォントをお使いなのですね。何というフォントでしょうか? WindowsだとMSゴシック、メイリオ、遊ゴシックなど、標準フォントは軒並み非対称で、ダウンロードしたプログラミング用にフォントも非対称です。バッククォートと対称性を持たせるためだと思います。 あと、私がダブルクォートを使う理由ではないですが、文字列のinspectの結果はダブルクォートで囲まれますね。 Pythonだとinspect相当の__repr__ではシングルクォートで囲まれます。
guest

0

メリット/デメリットの問題ではなく、機能が違うのですから、適切に使い分けることだと思います。
ダブルクオートはエスケープシーケンスが有効
シングルクオートはエスケープシーケンスが(ほぼ)無効
エスケープシーケンスなどを含まないただの文字列はどちらでも記述できるのでどちらでも良いということになりますが、エスケープシーケンスに使われる文字であろうともそのまま記述できるシングルクオートのほうが素直で私は好んでいます。つまりエスケープシーケンスや変数展開等を使うときだけダブルクオートを使います。

あと個人的にタイピングしやすいのはシングルクオートです。
私はUS配列キーボードを使っていて、シングルクオートはシフトを押さずにタイプできるので。

投稿2021/09/27 02:23

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

renessa

2021/09/28 01:43

確かにおっしゃる通りです。 メリットデメリットというより、機能が違うので適切に使い分ける必要がありますね。 US配列だとシングルコーテーションが使いやすそうですね。 Rubocopだと適切な箇所でダブルコーテーションを使用しないと、 警告でるそうなので、一旦使い分かる方法で慣れていこうかと思います。
guest

0

rubocop という ruby のコードのチェックをするツールがあります。
https://qiita.com/tomohiii/items/1a17018b5a48b8284a8b RuboCop is 何?
rubocop でのチェックは vscode に組み込むことができて、コード編集中に逐次 警告箇所にマークが付くようになっています。

このツールでの初期設定では 変数展開を含まない場合は 文字列は ' で囲まないと警告が出るようになってます。
rubocop でのチェックは vscode に組み込むことができて、コード編集中に逐次警告箇所にマークがつくようになっています。
このような環境で作業していると自然に ' で文字列を囲むようになっていきます...

投稿2021/09/27 23:59

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

renessa

2021/09/28 01:26

rubocopでは変数展開の箇所はダブルコーテーション、 文字列はシングルコーテーションで囲まないと警告がでるのですね。 確かに区別した方が、リーダブルコードに繋がるので区別したほうがよさそうですね。 あとrubocopはみなさん使用されているイメージがあるので、 実際現場に行ったときのためにも、コードの統一のためにも 区別したほうがよさそうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問