1
嗨我在以下Go程序中遇到了兩個問題。
1.我無法使用Scanf或Scanln讀取空格分隔的字符串。
所以我添加了一個格式化的字符串「%q」來使用雙引號讀取空格分隔的字符串。 是否有替代閱讀字符串與空格?閱讀Golang中的空格分隔字符串1.8
package main
import
(
"fmt"
"strings"
)
type details struct{
DataType string
Table string
}
func main(){
dt := details{}
fmt.Println("Enter the DataType")
fmt.Scanf("%q" ,&dt.DataType)
for strings.TrimSpace(dt.DataType) == "" {
fmt.Println("Enter the DataType")
fmt.Scanln(&dt.DataType)
}
//fmt.Println(dt.DataType)
fmt.Println("Enter the Table")
fmt.Scanln(&dt.Table)
for strings.TrimSpace(dt.Table) == "" {
fmt.Println("Enter a valid Table name ")
fmt.Scanln(&dt.Table)
}
}
控制檯輸出如下,
VenKats-MacBook-Air:ColumnCreator venkat$ go run test.go
Enter the DataType
"rid bigint not null"
Enter the Table
Enter a valid Table name
- 第二個問題是爲什麼控制流程走到第二個for循環,而不等待用戶輸入。帶有「%q」的Scanf返回卡拉格返回。 任何幫助,將不勝感激
讀取從輸入的線在Go有些非直觀,似乎很多初學者在那一個上絆倒了。看到這個問題的例子如何做到這一點:http://stackoverflow.com/q/20895552/723693 – ain
有趣的是,輸入'數據類型'和''數據類型''有一個回車少於或超過必要! :\ –