Golang中fmt包的Println,Printf和Sprintf的区别

Posted by     "Richie" on Thursday, August 1, 2019

Golang中fmt包的Println,Printf和Sprintf的区别

fmt包实现了格式化的I/O,其功能类似于C的printf和scanf(官网解释).

Println

  • 用默认的类型格式显示方式将传入的参数写入到标准输出里面(即在终端中有显示).
  • 多个传入参数之间使用空格分隔.
  • 在显示的最后追加换行符.
  • 返回值为 写入标准输出的字节数和写入过程终于到的问题

Printf

  • 用传入的格式化规则符将传入的变量写入到标准输出里面(即 在终端有显示).
  • 返回值为 写入标准输出的字节数和写入过程中遇到的问题

Sprintf

  • 用传入的格式化规则将传入的变量格式化(* 注意: 终端中不会有显示 *).
  • 返回为 格式化后的字符串.

Example

package fmt_demo

import (
	"fmt"
	"testing"
)

func TestFmt(t *testing.T) {
	testStr := []byte("test str")
	fmt.Println(testStr, "hello world") //[116 101 115 116 32 115 116 114] hello world
	fmt.Printf("%s", testStr)           // test str
	fmt.Println()
	fmt.Sprintf("%s", testStr) // 空, 无IO输出
	fmt.Println()
	printStr := fmt.Sprintf("%s", testStr)
	fmt.Println(printStr) // test str
}

运行测试代码: go test fmt_test.go -v:

=== RUN   TestFmt
[116 101 115 116 32 115 116 114] hello world
test str

test str
--- PASS: TestFmt (0.00s)
PASS
ok      command-line-arguments  0.006s

「真诚赞赏,手留余香」

Richie Time

真诚赞赏,手留余香

使用微信扫描二维码完成支付