1.1、修改 echo 程式,使其能夠列印 os.args[0] ,即被執行命令本身的名字。
// echo1.go
package main
import (
"fmt"
"os"
)func main()
fmt.println(s)
}
輸出結果:
$ ./test aa bb cc
./test aa bb cc
1.2、修改 echo 程式,使其列印每個引數的索引和值,每個一行。
// echo2.go
package main
import (
"fmt"
"os"
)func main()
}
輸出結果:
$ ./test aa bb cc
num = 0 , arg = ./test
num = 1 , arg = aa
num = 2 , arg = bb
num = 3 , arg = cc
1.3、做實驗測量潛在低效的版本和使用了 strings.join 的版本的執行時間差異。
// stringeffic_test.go
package main
import (
"strings"
"testing"
)func benchmarkstring2join(b *testing.b)
result := strings.join(input, " ")
if result != "welcome to jiangsu" }}
func benchmarkstring2plus(b *testing.b)
var s, sep string
for j := 0; j < len(input); j++
if s != "welcome to jiangsu"
}}
輸出結果:
$ go test -bench=benchmarkstring2plus
goos: darwin
goarch: amd64
benchmarkstring2plus-4 20000000 115 ns/op
pass
$ go test -bench=benchmarkstring2join
goos: darwin
goarch: amd64
benchmarkstring2join-4 20000000 66.3 ns/op
pass
1.7、函式呼叫io.copy(dst, src)會從src中讀取內容,並將讀到的結果寫入到dst中,使用這個函式替代掉例子中的ioutil.readall來拷貝響應結構體到os.stdout,避免申請乙個緩衝區( 例子中的b) 來儲存。記得處理io.copy返回結果中的錯誤。
}}1.8、修改fetch這個範例,如果輸入的url引數沒有 http:// 字首的話,為這個url加上該字首。你可能會用到strings.hasprefix這個函式。
}}1.9、修改fetch列印出http協議的狀態碼,可以從resp.status變數得到該狀態碼。
}}
輸出結果:
$ ./test
200 ok
C Primer 課後習題第一章
重新開始 要加油,加油,加油啊!黃鵬宇.我一定會找到工作的.fight!本門部分答案參考於 c primer 習題集 visual studio 官方文件如下 c 程式 字尾 cpp c程式 字尾 c 標頭檔案 h includeint main void 不合法 的前面沒有表示式 修改方法之一 只...
第一章課後習題1 13
1.13 設計乙個泛型類orderedcollection,它儲存的comparable物件的集合 在陣列中 以及該集合的當前大小。提供public方法isempty,makeempty,insert,remove,findmin和findmax。finfmin和findmax分別返回該集合中最小的...
第一章課後習題1 3
1.3 只使用處理i o的printdigit方法,編寫一種方法以輸出任意double型量 可以是負值 package com.algorithm.chapterone 只使用處理i o的printdigit方法,編寫一種方法以輸出任意double型量 可以是負值 author gao rongzh...