📝

Python, Ruby, JS, PHP における文字列処理の違い(結合と変数展開)

2021/06/26に公開
2

趣味や仕事で多くの言語で開発している際に、
単純な構文で書き間違えが多いので書き起こします。

特に解説はせずリファレンスとコードのみ記載します。

文字列配列の結合

Python

str.join(iterable) — Python 3.8.1 ドキュメント

strings = ['fizz', 'buzz']
merged_strings = ' '.join(strings)
print(merged_strings) # 'fizz buzz'

Ruby

Array#join (Ruby 2.7.0 リファレンスマニュアル)

strings = ['fizz', 'buzz']
merged_strings = strings.join(' ')
p merged_strings # "fizz buzz"

JavaScript

Array.prototype.join() - JavaScript | MDN

const strings = ['fizz', 'buzz'];
const mergedStrings = strings.join(' ');
console.log(mergedStrings); // 'fizz buzz'

PHP

PHP: implode - Manual

$strings = ['fizz', 'buzz'];
$mergedStrings = implode(' ', $strings);
print($mergedStrings) // 'fizz buzz'

文字列内の式展開

Python

7.1.1. フォーマット済み文字列リテラル — Python 3.8.1 ドキュメント

string_fizz, string_buzz = 'fizz', 'buzz'
string_fizz_buzz = f'{string_fizz} {string_buzz}'
print(string_fizz_buzz) # 'fizz buzz'

Ruby

式展開 (Ruby 2.7.0 リファレンスマニュアル)

string_fizz, string_buzz = 'fizz', 'buzz'
string_fizz_buzz = "#{string_fizz} #{string_buzz}"
p string_fizz_buzz # "fizz buzz"

JavaScript

テンプレート文字列 - JavaScript | MDN

const stringF = 'fizz'
const stringB = 'buzz'
const stringFizzBuzz = `${stringF} ${stringB}`
console.log(stringFizzBuzz) // 'fizz buzz'

PHP

PHP: 変数のパース - Manual

[$stringF, $stringB] = ['fizz', 'buzz'];
$stringFizzBuzz = "${stringF} ${stringB}";
print($stringFizzBuzz); // 'fizz buzz'

Discussion

響

# 文字列配列の結合のPythonの1行目に;がついてます…バグにはならないはずですが、他の言語仕様と混ざっています

ShunShun

指摘ありがとうございます!修正しました