A Tour of Go: Exercise: Rot13 Reader

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
package main    import (      "io"      "os"      "strings"  )    type rot13Reader struct {      r io.Reader  }    func rot13(p byte) byte {      switch {      case p >= 'A' && p <= 'M': p = p + 13      case p >= 'N' && p <= 'Z': p = p - 13      case p >= 'a' && p <= 'm': p = p + 13      case p >= 'n' && p <= 'z': p = p - 13      }            return p  }      func (v rot13Reader)  Read(p []byte) (n int, err error) {      original := make([]byte, 50)      i, err := v.r.Read(original)      for index, value := range original[:i] {          p[index] = rot13(value)      }      return i, err  }    func main() {      s := strings.NewReader(          "purakha")      r := rot13Reader{s}      io.Copy(os.Stdout, &r)  }  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.