Go语言拥有丰富的标准库,以及一些流行的第三方库。以下是一些常用库和用法的示例代码:
1. fmt - 格式化输入输出
代码语言:javascript复制goCopy codepackage main
import "fmt"
func main() {
name := "Gopher"
age := 3
fmt.Printf("Hello, %s! You are %d years old.n", name, age)
}
2. net/http - HTTP服务器
代码语言:javascript复制goCopy codepackage main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, Gopher!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
3. os - 操作系统功能
代码语言:javascript复制goCopy codepackage main
import (
"fmt"
"os"
)
func main() {
args := os.Args
fmt.Println("Command-line arguments:", args)
hostname, err := os.Hostname()
if err == nil {
fmt.Println("Hostname:", hostname)
}
}
4. time - 处理时间
代码语言:javascript复制goCopy codepackage main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Println("Current time:", now.Format("2006-01-02 15:04:05"))
oneHourLater := now.Add(time.Hour)
fmt.Println("One hour later:", oneHourLater.Format("15:04:05"))
}
5. encoding/json - JSON编解码
代码语言:javascript复制goCopy codepackage main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
p := Person{"Alice", 25}
jsonData, err := json.Marshal(p)
if err == nil {
fmt.Println("JSON data:", string(jsonData))
}
// 反序列化
var newPerson Person
err = json.Unmarshal(jsonData, &newPerson)
if err == nil {
fmt.Println("Decoded person:", newPerson)
}
}
6. crypto/md5 - MD5哈希
代码语言:javascript复制goCopy codepackage main
import (
"crypto/md5"
"encoding/hex"
"fmt"
)
func main() {
data := []byte("Hello, Golang!")
hash := md5.Sum(data)
md5String := hex.EncodeToString(hash[:])
fmt.Println("MD5 hash:", md5String)
}
7. strconv - 字符串转换
代码语言:javascript复制goCopy codepackage main
import (
"fmt"
"strconv"
)
func main() {
str := "42"
num, err := strconv.Atoi(str)
if err == nil {
fmt.Println("Converted number:", num)
}
// 整数转字符串
newStr := strconv.Itoa(123)
fmt.Println("Converted string:", newStr)
}
以上示例代码展示了一些常用的Go标准库和用法,涵盖了格式化输入输出、HTTP服务器、操作系统功能、时间处理、JSON编解码、哈希等方面。你可以通过实际应用中的需求来选择适合你的库和方法。