1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package main // 声明这是一个可执行程序的入口包
import (
"bufio" // 用于创建带缓冲的读取器
"fmt" // 用于格式化输入输出
"os" // 提供操作系统功能,这里用于获取标准输入
"strconv" // 用于字符串和基本数据类型之间的转换
"strings" // 提供字符串操作相关函数
)
func main() {
// 创建一个从标准输入读取的Scanner对象
scanner := bufio.NewScanner(os.Stdin)
// scanner.Scan()会读取下一行,当读到文件末尾时返回false
// 这个循环会一直处理输入,直到没有更多输入为止
for scanner.Scan() {
// Step1: 获取当前行的内容
// scanner.Text() 返回当前行的内容,类型为string
// scanner.Bytes() 返回当前行的内容,类型为[]byte
line := scanner.Text()
// Step2: 将字符串按空白字符分割成切片
// strings.Fields()会将字符串按空白字符(空格、制表符、换行符等)分割
// 返回[]string类型的切片,每个元素是一个被分割出的子字符串
nums := strings.Fields(line)
// Step3: 将字符串转换为整数
a, _ := strconv.Atoi(nums[0]) // 获取第一个数
b, _ := strconv.Atoi(nums[1]) // 获取第二个数
// Step4: 计算两数之和并输出
fmt.Println(a + b)
}
}
|