Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 对于Golang来说是新的,如果else不起作用,出于某种原因嵌套_If Statement_Go_Struct_Interface - Fatal编程技术网

If statement 对于Golang来说是新的,如果else不起作用,出于某种原因嵌套

If statement 对于Golang来说是新的,如果else不起作用,出于某种原因嵌套,if-statement,go,struct,interface,If Statement,Go,Struct,Interface,内部if-else虽然正确,但未到达。我不知道为什么它不匹配字符串的相等性测试,结果是使用接口变量调用函数不起作用 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]) fm

内部if-else虽然正确,但未到达。我不知道为什么它不匹配字符串的相等性测试,结果是使用接口变量调用函数不起作用

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换行符[1]
如果您使用query:=strings.Fieldsinp而不是query:=strings.Splitinp,您的问题应该会消失。

请务必让我知道代码是否需要额外的上下文。只需fmt.Printf%q%q\n,query[0],query[1],您就会看到。您能详细说明代码是如何工作的吗?你在期待什么,到底发生了什么?如果您遇到异常/错误,请发布发生该异常/错误的行以及可以使用。请将您的问题添加到其中,否则我们可能无法提供帮助。