Go语言中的常用包详解·数据库操作·Printf格式化输出文本不会自动添加换行符
Go语言中的常用包详解
在Go语言中,常用的包有很多,具体取决于你的应用需求。
以下是一些常见的包及其用途:
包名 | 用途 |
---|---|
fmt | 格式化I/O |
net/http | HTTP客户端和服务器 |
database/sql | 数据库操作 |
encoding/json | JSON数据处理 |
os | 操作系统功能 |
fmt包的使用
fmt包是Go语言标准库中的格式化I/O包,主要用于格式化输出和输入。
常用函数:
- Println:输出一行文本,并在结尾添加换行符。
- Printf:格式化输出文本,不会自动添加换行符。
- Sprintf:格式化文本并返回字符串,不会输出到控制台。
示例代码:
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客户端和服务器功能。
主要功能:
- 创建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数据。
主要功能:
- 编码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包。每个包都有其独特的功能和用途,开发者可以根据需求选择合适的包来实现相应的功能。