Sprintf和Println区别

fmt.Sprintf vs fmt.Println 的区别

特性 fmt.Sprintf fmt.Println
作用 格式化字符串并返回 打印到控制台,不返回
返回值 返回格式化后的字符串 返回写入的字节数
使用场景 需要构建字符串供后续使用 只需要打印输出
是否输出 不直接输出 直接输出到 stdout

具体示例

// fmt.Println:直接打印到控制台
func Welcome(name string) {
    fmt.Println("Welcome, " + name)  // 控制台输出:Welcome, Alice
    // 函数没有返回值
}

// fmt.Sprintf:返回字符串,不打印
func Welcome(name string) string {
    return fmt.Sprintf("Welcome, %s", name)  // 返回字符串
    // 控制台不会输出任何东西
}

// 使用 Sprintf
func Welcome(name string) string {
    msg := fmt.Sprintf("Welcome, %s", name)  // msg = "Welcome, Alice"
    return msg
}

// 使用 Println(错误示范)
func Welcome(name string) string {
    fmt.Println("Welcome, " + name)  // 打印了,但函数没有返回
    // ❌ 编译错误:没有 return
}

你的代码问题

你的错误代码:

func Welcome(name string) string {
    fmt.Println("Welcome to my party, " + name + "!")
    // ❌ 函数需要返回 string,但没有 return
}

正确写法:

func Welcome(name string) string {
    return fmt.Sprintf("Welcome to my party, %s!", name)
    // 或
    return "Welcome to my party, " + name + "!"
}

总结

场景 用什么
函数需要返回字符串 fmt.Sprintf 或字符串拼接
只需要打印到控制台 fmt.Println
调试输出 fmt.Println
构建响应/消息 fmt.Sprintf

核心区别

  • fmt.Println:打印 + 无返回
  • fmt.Sprintf:格式化 + 返回字符串
posted @ 2026-03-30 16:36  cyusouyiku  阅读(3)  评论(0)    收藏  举报