返回
从小白到高手,轻松掌握Go语言基础数据类型和输入输出
后端
2023-09-12 16:58:43
### 前言
Go语言是一种静态类型语言,具有多种基本数据类型,包括整形、浮点、字符、字符串、布尔等。Go语言还提供了丰富的输入输出功能,可以方便地从终端、文件和网络等来源读取和写入数据。
### Go语言基础数据类型
Go语言的基础数据类型分为整数类型、浮点类型、字符类型、字符串类型和布尔类型。
**整数类型**
整数类型包括int、int8、int16、int32和int64。它们分别表示有符号的8位、16位、32位和64位整数。
**浮点类型**
浮点类型包括float32和float64。它们分别表示32位和64位浮点数。
**字符类型**
字符类型表示单个字符。它可以使用单引号或双引号表示。
**字符串类型**
字符串类型表示一组字符。它可以使用双引号或反引号表示。
**布尔类型**
布尔类型表示真或假。它可以使用true或false表示。
### Go语言输入输出
Go语言提供了丰富的输入输出功能,可以方便地从终端、文件和网络等来源读取和写入数据。
**从终端读取数据**
可以使用fmt.Scan()函数从终端读取数据。该函数可以读取各种类型的数据,包括整数、浮点数、字符和字符串。
```go
var name string
fmt.Print("Enter your name: ")
fmt.Scanln(&name)
fmt.Println("Hello", name)
向终端写入数据
可以使用fmt.Print()或fmt.Println()函数向终端写入数据。fmt.Print()函数只写入数据,不换行。fmt.Println()函数写入数据后换行。
fmt.Print("Hello, world!")
fmt.Println("Hello, world!")
从文件读取数据
可以使用os.Open()函数打开文件,然后使用bufio.NewReader()函数创建一个缓冲区。可以使用bufio.ReadString()函数从缓冲区中读取数据。
file, err := os.Open("data.txt")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
向文件写入数据
可以使用os.Create()函数创建文件,然后使用bufio.NewWriter()函数创建一个缓冲区。可以使用bufio.WriteString()函数向缓冲区中写入数据。
file, err := os.Create("data.txt")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
writer := bufio.NewWriter(file)
writer.WriteString("Hello, world!")
writer.Flush()
从网络读取数据
可以使用net.Dial()函数连接到网络服务器,然后使用bufio.NewReader()函数创建一个缓冲区。可以使用bufio.ReadString()函数从缓冲区中读取数据。
conn, err := net.Dial("tcp", "127.0.0.1:80")
if err != nil {
fmt.Println(err)
return
}
defer conn.Close()
scanner := bufio.NewScanner(conn)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
向网络写入数据
可以使用net.Dial()函数连接到网络服务器,然后使用bufio.NewWriter()函数创建一个缓冲区。可以使用bufio.WriteString()函数向缓冲区中写入数据。
conn, err := net.Dial("tcp", "127.0.0.1:80")
if err != nil {
fmt.Println(err)
return
}
defer conn.Close()
writer := bufio.NewWriter(conn)
writer.WriteString("Hello, world!")
writer.Flush()