0
点赞
收藏
分享

微信扫一扫

go-基础-格式化

alanwhy 2022-01-07 阅读 48
package main

import (
	"fmt"
	"os"
	"strconv"
)
type point struct {
	x, y int
}
var logf = fmt.Printf
var log = fmt.Println
func main() {
	p := point{1, 2}
	logf("struct1 %v\n", p) // 没有健
	logf("struct2 %+v\n", p) // 键值
	logf("struct3 %#v\n", p) // 键值和结构体名
	
	logf("type %T\n", p)
	logf("bool %t\n", true)
	logf("bin %d\n", 123)
	logf("char %c\n", 33)
	logf("hex %x\n", 456)
	
	logf("float1 %f\n", 78.9)
	logf("float2 %e\n", 123400000.0)
	logf("float3 %E\n", 123400000.0)

	logf("str1 %s\n", "\"string\"")
	logf("str2 %q\n", "\"string\"") // 带引号,不转义
	logf("str3 %x\n", "\"string\" hex this") // 转为hex值
	
	logf("pointer %p\n", &p) // 内存地址

	logf("width1: |%6d|%6d|\n", 12, 456)
	logf("width2: |%6.2f|%6.2f|\n", 1.2, 4.52226)
	logf("width3: |%-6.2f|%-6.2f|\n", 1.2, 4.56) // - 往前排列
	logf("width4: |%6s|%6s|\n", "foo", "b")
	logf("width5: |%-6s|%-6s|\n", "foo", "b")

	s := fmt.Sprintf("Sprintf: a %s", "string") // 存一个打印的字符串
	fmt.Println(s) // 打印出来
	fmt.Fprintf(os.Stderr, "io: an %s\n", "error") // 打印文件操作错误

	f, _ := strconv.ParseFloat("1.234", 64)
	i, _ := strconv.ParseInt("1234", 0, 64)
	d, _ := strconv.ParseInt("0x1c8", 0, 64)
	u, _ := strconv.ParseUint("-789", 0, 64)
	u2, _ := strconv.ParseUint("789", 0, 64)
	k, _ := strconv.Atoi("135")
	k2, _ := strconv.Atoi("135")
	_, e := strconv.Atoi("wat")
	log(f)
	log(i)
	log(d)
	log(u)
	log(u2)
	log(k)
	log(k2)
	log(e)

}

举报

相关推荐

0 条评论