Go语言 - fmt包 | 输出 | 占位符
本文最后更新于1551天前,其中的信息可能已经有所发展或是发生改变。

在Go中,同一个文件夹下的.go文件可以理解为是在同一包下,这些.go文件的首行代码:package 包名 是一样的(包都存放在GOPATH的src文件夹下)

//在同一个包下,变量,函数,都不能重复定义
//在包内定义的函数如果是小写字母开头,表示只能在包内部使用
//在外部包想使用,函数名必须首字母大写

mypackage1/foo1.go

package mypackage  //通常情况下,包名就是文件夹名,在同一个文件夹下,包名必须一致

func test(a,b int) int{
    return a+b
}

mypackage1/foo2.go

package mypackage

import "fmt"

func Test1()  {
    fmt.Println(test(1,2))   
    fmt.Println("xxxx")  
}

mypackage2/foo3.go

// 包的使用
package main

import "mypackage"
import "fmt"

func main() {
    //想使用mypackage包下的test函数和test1函数
    mypackage.Test1()
    fmt.Println("xxx")
}

fmt包

fmt标准库是我们在学习Go语言过程中接触最早最频繁的一个了,本文介绍了fmtb包的一些常用函数。

fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容和获取输入内容两大部分。

向外输出

标准库fmt提供了以下几种输出相关函数

  • Print

Print系列函数会将内容输出到系统的标准输出

package main

import "fmt"

func main()  {
    var s1 = "上海"
    fmt.Print(s1, "n") // 上海  (默认不含换行)
}
  • Printf

Printf函数支持格式化输出字符串

package main

import "fmt"

func main()  {
    var s1 = "上海"
    fmt.Printf("地址:%s n", s1)  // 地址:上海  (默认不含换行)
}
  • Println

Println函数会在输出内容的结尾添加一个换行符

package main

import "fmt"

func main()  {
    var s1 = "上海"
    fmt.Println(s1)  // 上海  (默认含换行)
}

格式化占位符

printf系列函数都支持format格式化参数,在这里我们按照占位符将被替换的变量类型划分,方便查询和记忆。

通用占位符

占位符 说明
%v 值的默认格式表示
%+v 类似%v,但输出结构体时会添加字段名
%#v 值的Go语法表示
%T 打印值的类型
%% 百分号
func main()  {
    // 占位符
    var a = 100
    var b = "上海"
    var c = true
    fmt.Println(a, b, c)
    // %v
    fmt.Printf("a: %v", a)  // a: 100
    fmt.Printf("b: %v", b)  // b: 上海
    fmt.Printf("c: %v", c)  // c: true
    // %T
    fmt.Printf("a的类型是:%T", a)  // a的类型是:int
    fmt.Printf("b的类型是:%T", b)  // b的类型是:string
    fmt.Printf("c的类型是:%T", c)  // c的类型是:bool
    // %%转义
    fmt.Printf("%d%%", a)  // 100%
}

布尔型

占位符 说明
%t true或false

整型

占位符 说明
%b 表示为二进制
%c 该值对应的unicode码值
%d 表示为十进制
%o 表示为八进制
%x 表示为十六进制,使用a-f
%X 表示为十六进制,使用A-F
%U 表示为Unicode格式:U+1234,等价于”U+%04X”
%q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示

示例代码如下:

n := 65
fmt.Printf("%bn", n)
fmt.Printf("%cn", n)
fmt.Printf("%dn", n)
fmt.Printf("%on", n)
fmt.Printf("%xn", n)
fmt.Printf("%Xn", n)

输出结果如下:

1000001
A
65
101
41
41

浮点数与复数

占位符 说明
%b 无小数部分、二进制指数的科学计数法,如-123456p-78
%e 科学计数法,如-1234.456e+78
%E 科学计数法,如-1234.456E+78
%f 有小数部分但无指数部分,如123.456
%F 等价于%f
%g 根据实际情况采用%e或%f格式(以获得更简洁、准确的输出)
%G 根据实际情况采用%E或%F格式(以获得更简洁、准确的输出)

示例代码如下:

f := 12.34
fmt.Printf("%bn", f)
fmt.Printf("%en", f)
fmt.Printf("%En", f)
fmt.Printf("%fn", f)
fmt.Printf("%gn", f)
fmt.Printf("%Gn", f)

输出结果如下:

6946802425218990p-49
1.234000e+01
1.234000E+01
12.340000
12.34
12.34

点击数:91

    暂无评论

    发送评论 编辑评论

    
    				
    |´・ω・)ノ
    ヾ(≧∇≦*)ゝ
    (☆ω☆)
    (╯‵□′)╯︵┴─┴
     ̄﹃ ̄
    (/ω\)
    ∠( ᐛ 」∠)_
    (๑•̀ㅁ•́ฅ)
    →_→
    ୧(๑•̀⌄•́๑)૭
    ٩(ˊᗜˋ*)و
    (ノ°ο°)ノ
    (´இ皿இ`)
    ⌇●﹏●⌇
    (ฅ´ω`ฅ)
    (╯°A°)╯︵○○○
    φ( ̄∇ ̄o)
    ヾ(´・ ・`。)ノ"
    ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
    (ó﹏ò。)
    Σ(っ °Д °;)っ
    ( ,,´・ω・)ノ"(´っω・`。)
    ╮(╯▽╰)╭
    o(*////▽////*)q
    >﹏<
    ( ๑´•ω•) "(ㆆᴗㆆ)
    😂
    😀
    😅
    😊
    🙂
    🙃
    😌
    😍
    😘
    😜
    😝
    😏
    😒
    🙄
    😳
    😡
    😔
    😫
    😱
    😭
    💩
    👻
    🙌
    🖕
    👍
    👫
    👬
    👭
    🌚
    🌝
    🙈
    💊
    😶
    🙏
    🍦
    🍉
    😣
    Source: github.com/k4yt3x/flowerhd
    颜文字
    Emoji
    小恐龙
    花!
    上一篇
    下一篇