登录
首页 >  Golang >  Go问答

输出包含大括号

来源:stackoverflow

时间:2024-02-29 15:36:22 345浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《输出包含大括号》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

我编写了一个简单的函数来从 csv 文件中查找并返回随机名称,其中名称只是用大写字母编写的名称。它工作得很好,但输出是在大括号中给出的,即使它是字符串类型。有人知道如何去掉那些大括号吗?

func chosname(filePath string) string {
    var persons []Person
    rName := rand.Intn(1000) + 1000
    isFirstRow := true
    headerMap := make(map[string]int)

    f, _ := os.Open(filePath)
    r := csv.NewReader(f)
    
    for {
        // Read row
        record, err := r.Read()
        // Stop at EOF.
        if err == io.EOF {
            break
        }
        checkError("Some other error occurred", err)

        if isFirstRow {
            isFirstRow = false
            for _, v := range record {
                headerMap[v] = 0
            }
            continue
        }

        persons = append(persons, Person{
            IMIEPIERWSZE: record[headerMap["IMIEPIERWSZE"]],
        })
    }

    return fmt.Sprintf("%s", persons[rName])
}

输出: {paul} 想要的输出:paul


正确答案


由于默认格式,大括号将被打印出来,并且有一些解决方法,但最好的方法是将 string() string 方法实现为 person 类型,并根据需要添加自定义格式.

package main

import "fmt"

type Person struct {
    IMIEPIERWSZE string
}

func (p Person) String() string {
    return fmt.Sprintf("%s", p.IMIEPIERWSZE)
}

func main() {
    fmt.Println(Person{"test"})
}

演示:https://go.dev/play/p/gfnY_gn1kJ2

好了,本文到此结束,带大家了解了《输出包含大括号》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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