if-statement - Golang 新手,如果 else 不工作,由于某种原因嵌套

标签 if-statement go struct interface

尽管它是正确的,但没有达到内部 if else 。我不知道为什么它不匹配字符串的相等性测试,因此使用接口(interface)变量的函数调用不起作用

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 新手,如果 else 不工作,由于某种原因嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61715524/

相关文章:

go - 这段代码会不会在 Go1.5 的 GC 之后引起 panic?

c - 指向带索引的循环结构数组的指针

c++ - 在超出范围的结构对象上

C++ Char - 关系运算符

javascript - 我的脚本完美运行,直到我将其包装在 if (screen.width < 980) { } 语句中以检查屏幕尺寸

json - 如何解码 json 数据以定义明确的格式打印

go - 如何使用lz4压缩和解压缩文件?

javascript - 仅在桌面版本上使 js 代码异步

javascript - 如何使用 jquery 连续检查输入的值?

c - 结构指针及其使用