さまざまな言語でのROT13実装
JavaScript、Python、Bash、C、Go、RustでのROT13実装を紹介します。文字列操作、文字演算、標準ライブラリ関数を使ったアプローチを比較します。
Programming
詳細な説明
各言語でのROT13実装
ROT13は古典的なプログラミング演習であり、言語間の興味深い違いを明らかにします。いくつかの人気のある言語での慣用的な実装を紹介します。
JavaScript
const rot13 = str => str.replace(/[a-zA-Z]/g, c =>
String.fromCharCode(c.charCodeAt(0) + (c.toLowerCase() < 'n' ? 13 : -13))
);
Python
import codecs
decoded = codecs.decode("Uryyb, Jbeyq!", "rot_13")
# "Hello, World!"
Pythonは組み込みコーデックとしてROT13を含んでいます。
Bash
echo "Hello, World!" | tr 'A-Za-z' 'N-ZA-Mn-za-m'
# Uryyb, Jbeyq!
tr(translate)コマンドを使った古典的なUnixアプローチです。
主な違い
- Pythonは標準ライブラリにROT13を組み込んでいます
- Bashは単一の
trコマンドで実現 - JavaScriptはコールバック付きの正規表現replaceを使用
- C/Go/Rustは剰余演算を使った明示的な文字演算を使用
ユースケース
ROT13の実装はプログラミングチュートリアル、コーディング面接、競技プログラミングのウォームアップ演習で一般的に使用されます。言語間の実装を比較することで、文字列処理、文字エンコーディング、慣用的なパターンの理解が深まります。