登录
首页 >  Golang >  Go问答

在golang中不输出变量

来源:stackoverflow

时间:2024-02-09 20:45:16 470浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《在golang中不输出变量》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

我正在学习 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
}

正确答案


您必须使用 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
}

今天关于《在golang中不输出变量》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>