go語言聖經 第一章 課後習題

2021-08-29 02:33:33 字數 2687 閱讀 7218

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...