如何检查用户是否已在GO中输入零值


reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('n')
fmt.Println("Hello",text)

如何检查用户是否输入空值以及在哪里放置代码?注意 - 我已经尝试检查长度= 0= " ",但是它们似乎无法正常工作。

请建议这样做的另一种方法。谢谢!

bufio.Reader.ReadString()返回一个>包含特定器string,在这种情况下,newline字符 n

如果用户不输入任何内容,只需按 enter 键, ReadString()的返回值将为 "n",因此您必须将结果与"n"进行比较以检查空输入:

reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, err := reader.ReadString('n')
if err != nil {
    panic(err) // Don't forget to check and handle returned errors!
}
if text == "n" {
    fmt.Println("No input!")
} else {
    fmt.Println("Hello", text)
}

一个更好的选择是使用strings.TrimSpace(),它可以删除领先和尾随的白空间字符(包括newline;如果有人输入2个空格并按下 Enter ,它也不是有意义的名称,此解决方案也是如此过滤出来(。如果您称为strings.TrimSpace(),则可以与空字符串""进行比较:

text = strings.TrimSpace(text)
if text == "" {
    fmt.Println("No input!")
} else {
    fmt.Println("Hello", text)
}

//我到目前为止写的最好的算法

package main
import (
    "bufio"
    "fmt"
    "os"
)
func main() {
    Wellcome()
    sina := get_Informations()
    fmt.Printf("%v", sina)
    Goodbye()
}
func Wellcome() {
    fmt.Println("Welcome to this Program ...[*]")
}
func get_Informations() (string){
    reader := bufio.NewReader(os.Stdin)
    fmt.Print("Enter First-Name: ")
    firstName, _ := reader.ReadString('n') 
    if len(firstName) >= 5 {
        return firstName
    }
    for {
        fmt.Print("First-Name must be more than 3 characters: ")    
        firstName, _ := reader.ReadString('n') 
        if len(firstName) < 5 {
            continue
        }else if len(firstName) >=5{
            return firstName
        } 
    }
}
func Goodbye() {
    fmt.Println("   ")
    fmt.Println("   ")
    fmt.Println(" [*]----------------------[*]  ")
    fmt.Println(" [*]----THANKS.GOODBYE----[*]  ")
    fmt.Println(" [*]----------------------[*]  ")
    fmt.Println("   ")
    fmt.Println("   ")
}

相关内容

  • 没有找到相关文章

最新更新