💨
"" '' ` の違い完全整理:Java・JavaScript・Pythonの文字列リテラル文化を横断解説!
テンプレートリテラルとは?
-
定義: 文字列中に
${式}
や{式}
を埋め込める構文 -
JS:
`Hello ${name}`
-
Python:
f"Hello {name}"
特に "(ダブルクオート)"
、'(シングルクオート)'
、`(バッククオート)`
の違いは、 Java / JavaScript / Python で大きく扱いが異なります。
✅ Javaの場合
記号 | 用途 | 型 | 例 | 補足 |
---|---|---|---|---|
"" |
文字列 | String |
"hello" |
複数文字OK |
'' |
単一文字 | char |
'h' |
1文字のみ |
` |
× | ― | ― | 存在しない構文、書けばエラー |
String s = "hello"; // OK
char c = 'h'; // OK
char c2 = 'hello'; // ❌ エラー
String s2 = 'hello'; // ❌ エラー
String s3 = `hello`; // ❌ エラー
✅ JavaScriptの場合
記号 | 型 | 特徴 |
---|---|---|
"" / ''
|
string |
単なる文字列。機能差はない |
` ` |
string |
テンプレートリテラル:${} で式展開、複数行OK |
let name = "Taro";
console.log("Hello " + name); // OK
console.log(`Hello ${name}`); // テンプレートリテラル
✅ Pythonの場合
Pythonではテンプレートリテラルに相当するのが f-string(フォーマット済み文字列)。
方法 | 例 | 補足 |
---|---|---|
f-string | f"Hello {name}" |
Python 3.6以降。推奨 |
str.format() |
"Hello {}".format(name) |
古い形式 |
% 記法 |
"Hello %s" % name |
最古の形式。非推奨 |
name = "Taro"
print(f"Hello {name}") # OK
msg = f"""
こんにちは、{name}さん。
ようこそ!
""" # 改行にも対応
🧠 総まとめ
言語 | ダブルクオート ""
|
シングルクオート ''
|
バッククオート ``
|
---|---|---|---|
Java |
String (複数文字) |
char (1文字のみ) |
❌ 構文エラー |
JS |
string (同じ意味) |
string (同じ意味) |
✅ テンプレートリテラル |
Python |
str (同じ意味) |
str (同じ意味) |
❌ 構文エラー |
こうした基本の違いを押さえておくと、
異なる言語を扱う時の読み書きミスを減らせるだけでなく、設計の意図や歴史も見えてきます
基本的な内容ですが、ここの違いが明確に説明できるようになりたいですね。
Discussion