練習 1.1:修改echo
程式,使其能夠列印os.args[0]
,即被執行命令本身的名字。
package main
import (
"fmt"
"os"
)func main()
fmt.println(s)
}
練習 1.2:修改echo
程式,使其列印每個引數的索引和值,每個一行。
package main
import (
"fmt"
"os"
)func main()
}
練習 1.3:做實驗測量潛在低效的版本和使用了strings.join
的版本的執行時間差異。(1.6節講解了部分time
包,11.4節展示了如何寫標準測試程式,以得到系統性的效能評測。)
使用基準測試
test.go
package main
import (
"fmt"
"strings"
)func stringjoin() string
result := strings.join(input, " ")
return result
}func stringplus() string
var result, sep string
for _, j := range input
return result
}func main()
t_test.go
package main
import (
"testing"
)func benchmarkstring2join(b *testing.b)
}func benchmarkstring2plus(b *testing.b)
}
執行結果
goos: windows
goarch: amd64
pkg: hello
cpu: 11th gen intel(r) core(tm) i7-11800h @ 2.30ghz
benchmarkstring2join
benchmarkstring2join-16 40078419 30.53 ns/op
benchmarkstring2plus
benchmarkstring2plus-16 17557642 66.40 ns/op
pass
使用 time 包package main
import (
"fmt"
"strings"
"time"
)func timecost() func()
}func stringjoin() string
result := strings.join(input, " ")
return result
}func stringplus() string
var result, sep string
for _, j := range input
return result
}func main()
go語言聖經練習
練習 3.10 編寫乙個非遞迴版本的comma函式,使用bytes.buffer代替字串鏈結操作。package main import fmt os bytes func main func comma s string string return buf.string view code 練習 ...
Go語言 flag Go的命令列引數 命令列處理
1.命令列引數 命令列引數是指定程式執行引數的乙個常見方式。例如,go run hello.go,程式 go 使用了 run 和 hello.go 兩個引數。package main import os import fmt func main 要實驗命令列引數,最好先使用 go build 編譯乙...
Go語言 獲取命令列引數
部署golang專案時難免要通過命令列來設定一些引數,那麼在golang中如何操作命令行引數呢?可以使用flag庫和os庫。1.flag庫的使用 go語言標準庫提供了用於快迅解析命令列引數的flag包,大致的使用步驟如下 a.通過flag.string flag.bool flag.int 等方式來...