2020年4月13日月曜日

開発環境

入門Goプログラミング (Nathan Youngman(著)、Roger Peppé(著)、吉川 邦夫(監修, 翻訳)、翔泳社)のUNIT 2(型)、LESSON 9(多言語テキスト)の練習問題の解答を求めてみる。

コード

package main

import "fmt"

func rot13(message string) string {
 rotated := ""
 for _, c := range message {
  if 'a' <= c && c <= 'z' {
   c += 13
   if c > 'z' {
    c -= 26
   }
  } else if 'A' <= c && c <= 'Z' {
   c += 13
   if c > 'Z' {
    c -= 26
   }
  }
  rotated += string(c)
 }
 return rotated
}
func main() {
 message := "Hola Estación Espacial Internacional"
 fmt.Println(message)
 encrypted := rot13(message)
 fmt.Println("暗号化", encrypted)
 decrypted := rot13(encrypted)
 fmt.Println("複合化", decrypted)
 fmt.Printf("%v\n%v\n%v\n", message, encrypted, decrypted)
}

入出力結果(Zsh、PowerShell、Terminal)

% go build international.go
% ./international          
Hola Estación Espacial Internacional
暗号化 Ubyn Rfgnpvóa Rfcnpvny Vagreanpvbany
複合化 Hola Estación Espacial Internacional
Hola Estación Espacial Internacional
Ubyn Rfgnpvóa Rfcnpvny Vagreanpvbany
Hola Estación Espacial Internacional
% 

0 コメント:

コメントを投稿