文字列を受け取って文字列を返し、文字をアルファベットで 13 文字後の文字 (ROT13) に置き換える関数を作成したいと考えています。たくさんの例を見つけましたが、残念ながら、さまざまなエラーのために誰も動作させることができませんでした。たとえば、これは次のとおりです。
var key = [String:String]() // EDITED
let uppercase = Array(arrayLiteral: "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
let lowercase = Array(arrayLiteral: "abcdefghijklmnopqrstuvwxyz")
for i in 0 ..< 26 {
key[uppercase[i]] = uppercase[(i + 13) % 26]
key[lowercase[i]] = lowercase[(i + 13) % 26]
}
func rot13(s: String) -> String {
return String(map(s, { key[$0] ?? $0 }))
}