目录fmttimeflaglogioencoding/jsonstrconvmathtemplatenet/httpcryptosynccontextbytes数据格式反射osmodulestringpath/filepathcompress/gzipd
fmt 包提供了格式化输入/输出函数,如打印到标准输出、读取用户输入等。
主要函数
Print: 打印多个值,不换行。Println: 打印多个值并换行。Printf: 格式化打印多个值。Scan: 从标准输入读取一个或多个值。Scanf: 按指定格式从标准输入读取一个或多个值。Sprint: 将多个值转换为字符串。Sprintf: 按指定格式将多个值转换为字符串。示例代码
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello, World!")
var name string
fmt.Print("请输入您的名字: ")
fmt.Scan(&name)
fmt.Printf("欢迎 %s 来到 Go 世界。\n", name)
}
time 包用于处理日期和时间。
主要函数
Now: 获取当前时间。Parse: 解析指定格式的时间字符串。Format: 将时间对象格式化为字符串。Since: 计算两个时间点之间的时间差。Sleep: 暂停执行一段时间。示例代码
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Println("当前时间:", now.Format("2006-01-02 15:04:05"))
t, _ := time.Parse("2006-01-02", "2023-09-01")
fmt.Println("解析后的时间:", t)
}
flag 包用于解析命令行参数。
主要函数
String: 创建一个字符串类型的命令行参数。Int: 创建一个整数类型的命令行参数。Bool: 创建一个布尔类型的命令行参数。Parse: 解析命令行参数。示例代码
package main
import (
"flag"
"fmt"
)
func main() {
var name = flag.String("name", "World", "A name to greet.")
flag.Parse()
fmt.Printf("Hello, %s!\n", *name)
}
log 包提供基本的日志记录功能。
主要函数
Print: 打印日志信息。Printf: 格式化打印日志信息。Println: 打印日志信息并换行。Fatal: 打印日志信息并退出程序。Panic: 打印日志信息并触发 panic。示例代码
package main
import (
"log"
)
func main() {
log.SetPrefix("[INFO] ")
log.SetFlags(0)
log.Println("程序开始运行")
}
io 包定义了一些接口,用于处理输入输出流。
主要函数
Copy: 复制数据流。ReadAll: 读取所有数据。WriteString: 写入字符串。示例代码
package main
import (
"io"
"os"
)
func main() {
_, err := io.Copy(os.Stdout, os.Stdin)
if err != nil {
panic(err)
}
}
encoding/json 包实现了JSON数据格式的编码和解码。
主要函数
Marshal: 将结构体转换为 JSON 字符串。Unmarshal: 将 JSON 字符串转换为结构体。Encode: 将结构体编码为 JSON 并写入 Writer。Decode: 从 Reader 中解码 JSON 数据并填充到结构体。示例代码
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
user := User{Name: "Alice", Age: 30}
data, _ := json.Marshal(user)
fmt.Println(string(data))
}
strconv 包提供了字符串和基本类型之间的转换。
主要函数
Atoi: 将字符串转换为整数。Itoa: 将整数转换为字符串。ParseFloat: 将字符串转换为浮点数。FormatFloat: 将浮点数转换为字符串。示例代码
package main
import (
"fmt"
"strconv"
)
func main() {
ageStr := "25"
age, _ := strconv.Atoi(ageStr)
fmt.Println("年龄:", age)
}
math 包提供了数学运算功能。
主要函数
Abs: 计算绝对值。Sqrt: 计算平方根。Pow: 计算幂。Ceil: 向上取整。Floor: 向下取整。Round: 四舍五入。示例代码
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println("圆周率:", math.Pi)
fmt.Println("平方根:", math.Sqrt(16))
}
template 包用于模板处理,常用于Web应用中的页面渲染。
主要函数
New: 创建一个新的模板。ParseFiles: 解析多个文件。Execute: 执行模板并写入Writer。ExecuteTemplate: 执行指定名称的模板。示例代码
package main
import (
"html/template"
"os"
)
type Person struct {
Name string
Age int
}
func main() {
tmpl := template.Must(template.New("test").Parse(`<h1>Hello, {{.Name}}!</h1> Age: {{.Age}}`))
p := Person{Name: "Alice", Age: 30}
err := tmpl.Execute(os.Stdout, p)
if err != nil {
panic(err)
}
}
net/http 包提供了HTTP客户端和服务端的功能。
主要函数
ListenAndServe: 监听并服务HTTP请求。ServeMux: 默认的请求多路复用器。HandleFunc: 注册处理函数。Request: 创建HTTP请求。Do: 发送HTTP请求。ResponseWriter: 响应写入器。示例代码
package main
import (
"fmt"
"net/http"
)
func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
}
func main() {
http.HandleFunc("/", helloHandler)
err := http.ListenAndServe(":8080", nil)
if err != nil {
panic(err)
}
}
crypto...
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!