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包。每个包都有其独特的功能和用途,开发者可以根据需求选择合适的包来实现相应的功能。