2019年3月25日月曜日

開発環境

プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES) (Alan A.A. Donovan(著)、Brian W. Kernighan(著)、柴田 芳樹(翻訳)、丸善出版)の第4章(コンポジット型)、4.3(マップ)、練習問題4.9の解答を求めてみる。

コード

package main

import (
 "bufio"
 "fmt"
 "os"
)

func main() {
 // 日本語のコメント
 counts := map[string]int{}
 invalid := 0
 input := bufio.NewScanner(os.Stdin)
 input.Split(bufio.ScanWords)
 for input.Scan() {
  counts[input.Text()]++
 }
 for c, n := range counts {
  fmt.Printf("%-30s\t%5d\n", c, n)
 }
 if invalid > 0 {
  fmt.Printf("\n%d invalid UTF-8 characters\n", invalid)
 }
}

入出力結果(cmd(コマンドプロンプト)、Terminal)

C:\Users\...>go run wordfreq.go  < wordfreq.go
"fmt"                              1
main()                             1
if                                 1
UTF-8                              1
(                                  1
)                                  1
//                                 1
counts                             2
invalid                            3
0                                  2
input                              1
"bufio"                            1
{                                  4
bufio.NewScanner(os.Stdin)         1
input.Scan()                       1
counts[input.Text()]++             1
package                            1
import                             1
func                               1
c,                                 2
:=                                 4
invalid)                           1
"os"                               1
日本語のコメント                           1
n)                                 1
>                                  1
}                                  4
n                                  1
input.Split(bufio.ScanWords)       1
for                                2
range                              1
fmt.Printf("%-30s\t%5d\n",         1
fmt.Printf("\n%d                   1
characters\n",                     1
main                               1
map[string]int{}                   1

C:\Users\...>

0 コメント:

コメントを投稿