さまざまな言語での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の実装はプログラミングチュートリアル、コーディング面接、競技プログラミングのウォームアップ演習で一般的に使用されます。言語間の実装を比較することで、文字列処理、文字エンコーディング、慣用的なパターンの理解が深まります。

試してみる — ROT13 / Caesar Cipher

フルツールを開く