我开始使用 Go 编程,我正在尝试创建一个程序来查询数据库并返回数据。我已经做到了这一点,但在此期间我遇到了一些问题和疑问。
首先,我尝试创建一个带有条件的 for 来告诉程序何时我想停止查询,但是 for 的 Init 语句看起来只被评估一次 - 而且我再也没有被要求通过终端输入输入 - (我在这里读到是因为他的值是 hold 然后它不会再次执行该函数:Golang switch statement only calls function once):
已编辑
func main() {
var query string
for query = ReadQuery(); query != "exit\n"; {
rows, err := db.Query(query)
//Printing results and other operations
}
fmt.Println("Exiting")
}
func ReadQuery() string {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter query in a single line, with no newline. 'exit' to terminate execution: \n")
query, _ :=reader.ReadString('\n')
reader.Reset(os.Stdin)
return query
}
...所以我做了这个在我看来有点脏的修复:
func main() {
var query string
for {
query = ReadQuery()
if query == "exit\n" {
fmt.Println("Exiting")
break
}
//Printing results and other operations
}
}
func ReadQuery() string {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter query in a single line, with no newline. 'exit' to terminate execution: \n")
query, _ :=reader.ReadString('\n')
reader.Reset(os.Stdin)
return query
}
所以问题是是否有另一种方法可以使用 for 语句来执行此操作并避免在我的代码中添加更多行。非常感谢
30秒到达战场
相关分类