Golang 的新手,由于某种原因嵌套,如果其他不起作用



内部如果其他没有被到达,尽管它是正确的。我不知道为什么它与字符串的相等性测试不匹配,因此使用接口变量调用函数不起作用

fmt.Println("Enter a valid query:")
fmt.Printf(">")
reader:=bufio.NewReader(os.Stdin)
inp,_:=reader.ReadString('n')
query:=strings.Split(inp," ")           
fmt.Println("0 : ",query[0])
fmt.Println("1 : ",query[1])
st:=query[1]
if query[0]=="cow"{
fmt.Println("inside cow going to",st)
var a animal=cow{"Cow"}
if query[1]=="eat"{
a.eat()
} else if query[1]=="move"{
a.move()
} else if st=="speak"{
fmt.Println("inside cow speak")//Not reaching here even
a.speak()
}
}

我认为您的query[1]中有n(换行符( 如果您使用query:=strings.Fields(inp)而不是query:=strings.Split(inp," ")您的问题应该会消失。

最新更新