Go语言中的常用包详解·数据库操作·Printf格式化输出文本不会自动添加换行符

Go语言中的常用包详解

在Go语言中,常用的包有很多,具体取决于你的应用需求。

以下是一些常见的包及其用途:

包名 用途
fmt 格式化I/O
net/http HTTP客户端和服务器
database/sql 数据库操作
encoding/json JSON数据处理
os 操作系统功能

fmt包的使用

fmt包是Go语言标准库中的格式化I/O包,主要用于格式化输出和输入。

常用函数:

示例代码:

package main import "fmt" func main() { fmt.Println("Hello, World!") fmt.Printf("This is a formatted string: %s\n", "formatted") result := fmt.Sprintf("This string is not printed.") fmt.Println(result) }

net/http包

net/http包用于实现HTTP客户端和服务器功能。

主要功能:

示例代码:

package main import ( "fmt" "net/http" ) func helloHandler(w http.ResponseWriter, r http.Request) { fmt.Fprintf(w, "Hello, World!") } func main() { http.HandleFunc("/", helloHandler) http.ListenAndServe(":8080", nil) }

database/sql包

database/sql包用于数据库操作。

主要功能:

示例代码:

package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "user:password@/dbname") if err != nil { panic(err) } defer db.Close() rows, err := db.Query("SELECT FROM users") if err != nil { panic(err) } defer rows.Close() for rows.Next() { var user string if err := rows.Scan(&user); err != nil { panic(err) } fmt.Println(user) } }

encoding/json包

encoding/json包用于处理JSON数据。

主要功能:

示例代码:

package main import ( "encoding/json" "fmt" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { u := User{Name: "Alice", Age: 30} b, err := json.Marshal(u) if err != nil { panic(err) } fmt.Println(string(b)) var u2 User err = json.Unmarshal(b, &u2) if err != nil { panic(err) } fmt.Println(u2) }

os包

os包提供了与操作系统交互的函数。

主要功能:

示例代码:

package main import ( "fmt" "os" ) func main() { // 文件操作 file, err := os.Create("example.txt") if err != nil { panic(err) } defer file.Close() _, err = file.WriteString("Hello, World!") if err != nil { panic(err) } // 环境变量 env := os.Getenv("PATH") fmt.Println("PATH:", env) // 进程管理 pid := os.Getpid() fmt.Println("PID:", pid) }

在Go语言中,常用的包包括fmt、net/http、database/sql、encoding/json和os包。每个包都有其独特的功能和用途,开发者可以根据需求选择合适的包来实现相应的功能。