gpt4 book ai didi

go - 有没有更有效的方法来连接字符串?

转载 作者:数据小太阳 更新时间:2023-10-29 03:23:24 24 4
gpt4 key购买 nike

<分区>

我已经编写了一个 Go 代码示例,它向 postgres 发送查询并将结果发送到寻呼机:

package main

import (
"fmt"
"database/sql"
_ "github.com/lib/pq"
"log"
"os/exec"
"strings"
"os"
)

func main() {
connstr := "user=postgres dbname=postgres sslmode=disable"
db, err := sql.Open("postgres", connstr)
if err != nil { log.Fatal(err) }

rows, err := db.Query("SELECT schemaname, relname, seq_scan FROM pg_stat_all_tables ORDER BY 1 LIMIT 10")
if err != nil { log.Fatal(err) }
defer rows.Close()

var buf string
for rows.Next() {
var s, r string
var ss int
if err := rows.Scan(&s, &r, &ss); err != nil { log.Fatal(err) }
buf = fmt.Sprintf("%s %s %d\n", buf + s, r, ss)
}

cmd := exec.Command("less")
cmd.Stdin = strings.NewReader(buf)
cmd.Stdout = os.Stdout

err = cmd.Run()
if err != nil { log.Fatal(err) }
}

但是下面一行:

buf = fmt.Sprintf("%s %s %d\n", buf + s, r, ss)

对我来说看起来很粗鲁,我不确定这是正确的方法。有没有办法以更优雅的方式取得成果?也许可以使用某种缓冲区和 io.Readers?

更新。几年前问这个问题的时候,我还是一个 Golang 新手。现在,根据目前的经验,我认为这段代码没有问题,应该关闭这个问题。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com