golang标准库学习——一文搞懂golang常用标准库
在Golang中,有许多的标准库,它们提供了各种各样的功能,包括文件I/O、网络通信、数据库操作、并发编程等。以下是一些常用的Golang标准库:
fmt
:这是Golang的标准格式化输入/输出库,用于字符串格式化和标准I/O操作。
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
strconv
:用于字符串和其他数据类型之间的转换。
package main
import (
"fmt"
"strconv"
)
func main() {
i, _ := strconv.Atoi("123")
fmt.Println(i)
}
os
:用于Go程序与操作系统交互,例如文件操作。
package main
import (
"fmt"
"os"
)
func main() {
err := os.Mkdir("test", 0755)
if err != nil {
fmt.Println(err)
}
}
io/ioutil
:用于文件的读写操作。
package main
import (
"io/ioutil"
"fmt"
)
func main() {
data := "Hello, World!"
_ = ioutil.WriteFile("test.txt", []byte(data), 0644)
b, _ := ioutil.ReadFile("test.txt")
fmt.Print(string(b))
}
net/http
:用于HTTP客户端和服务端。
package main
import (
"net/http"
"io/ioutil"
"fmt"
)
func main() {
resp, _ := http.Get("http://example.com")
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
encoding/json
:用于JSON数据的编码和解码。
package main
import (
"encoding/json"
"fmt"
"log"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
p := Person{"John", 30}
b, _ := json.Marshal(p)
_ = ioutil.WriteFile("test.json", b, 0644)
data, _ := ioutil.ReadFile("test.json")
var person Person
_ = json.Unmarshal(data, &person)
fmt.Printf("%+v\n", person)
}
database/sql
:用于数据库的交互。
package main
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
"log"
)
func main() {
db, _ := sql.Open("mysql", "user:password@tcp(localhost:3306)/dbname")
_, err := db.Exec("INSERT INTO test(name, age) VALUES (?, ?)", "John", 30)
if err != nil {
log.Fatal(err)
}
}
sync
:用于并发程序的编写。
package main
import (
"fmt"
"sync"
)
var wg sync.WaitGroup
func worker(i int) {
defer wg.Done
评论已关闭