为了账号安全,请及时绑定邮箱和手机立即绑定

不在 golang 中打印一系列变量

不在 golang 中打印一系列变量

蝴蝶不菲 2022-11-23 20:03:50

我正在学习 Golang 使用 go v1.18 得到一些奇怪的输出当我打印时firstName, lastName, birthday, created只得到结果因为created 我已经打印声明变量并再次打印整个东西它工作正常问题是var reader = bufio.NewReader(os.Stdin)


package main


import (

    "bufio"

    "fmt"

    "os"

    "strings"

    "time"

)


var reader = bufio.NewReader(os.Stdin)


func main() {

    firstName := getUserData("Enter First Name: ")

    lastName := getUserData("Enter Last Name: ")

    birthdate := getUserData("Enter Date of Birth: ")

    created := time.Now()


    fmt.Println(firstName, lastName, birthdate, created) //only prints created

    fmt.Println(firstName) // prints firstName

    fmt.Println(lastName) // prints lastName

    fmt.Println(birthdate) // prints birthdate

    fmt.Println(created) // prints created

}


func getUserData(promptText string) string {

    fmt.Print(promptText)

    userInput, _ := reader.ReadString('\n')

    cleanedInput := strings.Replace(userInput, "\n", "", -1)

    return cleanedInput

}


查看完整描述

1 回答

?
富国沪深

TA贡献1533条经验 获得超9个赞

你必须使用strings.TrimSpace而不是strings.Replace 因为在你的代码中你没有删除回车\r


请参阅下面更正后的代码。


package main


import (

    "bufio"

    "fmt"

    "os"

    "strings"

    "time"

)


var reader = bufio.NewReader(os.Stdin)


func main() {

    firstName := getUserData("Enter First Name: ")

    lastName := getUserData("Enter Last Name: ")

    birthdate := getUserData("Enter Date of Birth: ")

    created := time.Now()


    fmt.Println(firstName, lastName, birthdate, created) //will print all

    fmt.Println(firstName)                               // prints firstName

    fmt.Println(lastName)                                // prints lastName

    fmt.Println(birthdate)                               // prints birthdate

    fmt.Println(created)                                 // prints created

}


func getUserData(promptText string) string {

    fmt.Print(promptText)

    userInput, _ := reader.ReadString('\n')

    cleanedInput := strings.TrimSpace(userInput)


    return cleanedInput

}


查看完整回答
反对 回复 2022-11-23

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信