Analysis of common functions in Golang standard library
As a powerful and efficient programming language, Golang provides many common functions in its standard library. This article will analyze several common functions in detail and provide specific code examples.
1. File operation
Golang’s os package provides the function of creating and writing files. First, we need to create a file using the Create function, and then write content to the file using the WriteString or Write function.
Sample code:
package main import ( "fmt" "os" ) func main() { file, err := os.Create("example.txt") if err != nil { fmt.Println("文件创建失败:", err) return } defer file.Close() content := "Hello, Golang!" _, err = file.WriteString(content) if err != nil { fmt.Println("写入文件失败:", err) return } fmt.Println("文件写入成功!") }
Using the Open and Read functions in the os package, we can open a file and Read its contents. At the same time, we can also use the Write function to write content to the file.
Sample code:
package main import ( "fmt" "io" "os" ) func main() { file, err := os.Open("example.txt") if err != nil { fmt.Println("文件打开失败:", err) return } defer file.Close() buf := make([]byte, 1024) for { n, err := file.Read(buf) if err != nil && err != io.EOF { fmt.Println("读取文件失败:", err) return } if n == 0 { break } fmt.Println(string(buf[:n])) } file, err = os.OpenFile("example.txt", os.O_WRONLY|os.O_APPEND, 0666) if err != nil { fmt.Println("文件打开失败:", err) return } defer file.Close() content := " Welcome to Golang!" _, err = file.Write([]byte(content)) if err != nil { fmt.Println("写入文件失败:", err) return } fmt.Println("文件读取和写入成功!") }
2. Network operations
Golang’s net/http package provides creation and the ability to send HTTP requests. We can use the Get function to obtain the content of a web page and the ReadAll function to read the response body.
Sample code:
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, err := http.Get("https://example.com") if err != nil { fmt.Println("HTTP请求失败:", err) return } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("读取响应失败:", err) return } fmt.Println(string(body)) }
Golang’s net package provides the function of creating a TCP server. We can use the Listen and Accept functions to listen and accept client connections, and then send and receive data through the Read and Write functions.
Sample code:
package main import ( "fmt" "net" ) func handleConn(conn net.Conn) { defer conn.Close() buf := make([]byte, 1024) for { n, err := conn.Read(buf) if err != nil { fmt.Println("读取数据失败:", err) return } if n == 0 { break } fmt.Println(string(buf[:n])) } conn.Write([]byte("Hello, client!")) } func main() { listener, err := net.Listen("tcp", "localhost:8080") if err != nil { fmt.Println("监听失败:", err) return } defer listener.Close() fmt.Println("服务器已启动,等待客户端连接...") for { conn, err := listener.Accept() if err != nil { fmt.Println("接受连接失败:", err) break } go handleConn(conn) } }
The above are the analysis and code examples of several common functions in the Golang standard library. Through these examples, we can better understand and use Golang's standard library and improve development efficiency. In actual development, we can further apply and expand these functions according to specific needs to meet different needs.
The above is the detailed content of Analyze common functions in Golang standard library. For more information, please follow other related articles on the PHP Chinese website!