面试题答案
一键面试package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
config := make(map[string]string)
file, err := os.Open("config.txt")
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
line := scanner.Text()
parts := strings.SplitN(line, "=", 2)
if len(parts) == 2 {
key := strings.TrimSpace(parts[0])
value := strings.TrimSpace(parts[1])
config[key] = value
}
}
if err := scanner.Err(); err != nil {
fmt.Println("Error reading file:", err)
return
}
// 打印配置信息
for key, value := range config {
fmt.Printf("%s: %s\n", key, value)
}
}
- 首先创建一个空的
map
用于存储配置信息。 - 打开配置文件,若打开失败则打印错误并返回。
- 使用
bufio.Scanner
逐行读取文件内容。 - 对每行内容按
=
进行分割,若分割后有两个部分,则去除两端空格后将键值对存入map
。 - 最后检查读取过程中是否有错误,并打印出读取到的配置信息。
请将配置信息按每行key=value
的格式写入config.txt
文件中,放在与该Go程序相同目录下运行。