尽管没有错,但还是没有达到内部。我不知道为什么它不匹配字符串的相等性测试,从而导致使用接口变量的函数调用不起作用
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()
}
}
最佳答案
我认为您的\n
中有一个query[1]
(换行符)
如果您使用query:=strings.Fields(inp)
而不是query:=strings.Split(inp," ")
,则您的问题将消失。
关于if-statement - Golang的新手,由于某种原因嵌套,否则无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61715524/