- Go語言高級編程(第2版)
- 柴樹杉 曹春暉
- 344字
- 2025-08-07 17:56:11
1.2.7 你好, 世界!——2.0版本
經過半個世紀的涅槃重生,Go語言不僅打印出了Unicode版本的“Hello, World”,而且可以方便地向全球用戶提供打印服務。下面的版本通過HTTP服務向每個訪問的客戶端打印中文的“你好, 世界!”和當前的時間信息:
package main import ( "fmt" "log" "net/http" "time" ) func main() { fmt.Println("Please visit http://127.0.0.1:12345/") http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { s := fmt.Sprintf("你好, 世界! -- Time: %s", time.Now().String()) fmt.Fprintf(w, "%v\n", s) log.Printf("%v\n", s) }) if err := http.ListenAndServe(":12345", nil); err != nil { log.Fatal("ListenAndServe: ", err) } }
這里我們通過Go語言標準庫自帶的net/http
包,構造了一個獨立運行的HTTP服務,其中http.
HandleFunc
("/", ...)
針對根路徑/
請求注冊了響應處理函數。在響應處理函數中,我們依然使用fmt
.Fprintf()
格式化輸出函數實現了通過HTTP向請求的客戶端打印格式化的字符串,同時通過標準庫的日志包在服務器端也打印相關字符串。最后通過http.
ListenAndServe
()
函數調用來啟動HTTP服?務。
至此,Go語言終于完成了從單機單核時代的C語言到21世紀互聯網時代多核環境的通用編程語言的蛻?變。