Go程序设计语言 练习题
生活随笔
收集整理的這篇文章主要介紹了
Go程序设计语言 练习题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
練習(xí)1.1:修改echo程序輸出os.Args[0],即命令的名字。
package mainimport ("fmt""os" )func main(){if len(os.Args) > 0 {fmt.Println(os.Args[0])} }運(yùn)行:go run main.go args args2
輸出:
/var/folders/w1/vvlknvm10l3b8391hzltdh0h0000gn/T/go-build287366431/b001/exe/main
練習(xí)1.2:修改echo程序,輸出參數(shù)的索引和值,每行一個(gè)。
package mainimport ("fmt""os" )func main(){for k,value := range os.Args{fmt.Println(k)fmt.Println(value)} }運(yùn)行:go run main.go args args2
輸出:
0
/var/folders/w1/vvlknvm10l3b8391hzltdh0h0000gn/T/go-build005548217/b001/exe/main
1
args=1
2
args2
練習(xí)1.3:嘗試測(cè)量可能低效的程序和使用strings.Join的程序在執(zhí)行時(shí)間上的差異。(1.6節(jié)有time包,11.4節(jié)展示如何撰寫系統(tǒng)性的性能評(píng)估測(cè)試。)
未做
練習(xí)1.4: 修改dup2程序,輸出出現(xiàn)重復(fù)行的文件的名稱。
package mainimport ("bufio""fmt""os""strings" )func main(){files := os.Args[1:]if len(files) == 0 {return}var result []stringfor _, arg := range files{f, err := os.Open(arg)if err != nil{fmt.Fprintf(os.Stderr, "dup2: %v\n", err)continue}counts := make(map[string]int)countLines(f, counts)f.Close()for _,v := range counts{if v > 1 {result = append(result,arg)break;}}}fmt.Println(strings.Join(result," ")) }func countLines(f *os.File, counts map[string]int){input := bufio.NewScanner(f)for input.Scan(){counts[input.Text()]++} }$ go run main.go file1.txt file2.txt file3.txt
file1.txt file3.txt
?
?
總結(jié)
以上是生活随笔為你收集整理的Go程序设计语言 练习题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Go程序设计语言pdf
- 下一篇: Go程序设计语言读书笔记