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