【发布时间】:2021-12-04 02:55:05
【问题描述】:
我正在尝试在地图数据类型中添加一堆值,然后尝试将其打印出来。但它的表现很奇怪。当我直接用键调用地图时,它给了我正确的输出,但当我将键存储在变量中然后调用它时没有给我任何输出。我无法弄清楚发生了什么以及为什么会得到这种输出。有人可以帮助我吗?
package main
import (
"bufio"
"fmt"
"os"
)
func main(){
type Authentication struct {
password string
}
var authentication = map[string]Authentication{}
var user1 Authentication
user1.password = "abc"
authentication["def"] = user1
reader := bufio.NewReader(os.Stdin)
usid := readString(reader)
fmt.Println(authentication)
fmt.Println(authentication[usid])
fmt.Println(authentication["def"])
}
// Reading input functions
func readString(reader *bufio.Reader) string {
s, _ := reader.ReadString('\n')
for i := 0; i < len(s); i++ {
if s[i] == '\n' {
return s[:i]
}
}
return s
}
输入:
def
输出:
map[def:{abc}]
{abc}
【问题讨论】:
-
使用 bufio.Scanner 读取行终止符被修剪的行。
标签: go goland oracle-golden-gate