Go string和fmt 详解

简介: 今天介绍Go常用的字符串string和数据格式化类fmt

string


定义


由双引号包裹的内容就是字符串

通过:=赋值给变量


s := "i'm ok"
fmt.Println(s)


打印结果:


i'm ok


定义多行字符串,按预制格式输出


s2 := `
`
fmt.Println(s2)


打印结果:



微信图片_20221112143642.jpg


使用`原样输出字符串`


s3 := `/Users/wangzhongyang/Code/go/src/github.com/studygo/day01/08string`
fmt.Println(s3)


打印结果:


/Users/wangzhongyang/Code/go/src/github.com/studygo/day01/08string


使用 \ 作为转义标识符


path := ""\Users\wangzhongyang\Code\go\src\github.com\studygo\day01\07fmt""
fmt.Println(path)


发现复制GOland的代码到markdown会如下自动转义,所以附上我Goland中的代码截图:


微信图片_20221112143204.jpg


打印结果:


"\Users\wangzhongyang\Code\go\src\github.com\studygo\day01\07fmt"


字符串常用操作


长度使用len()


s3 := `/Users/wangzhongyang/Code/go/src/github.com/studygo/day01/08string`
fmt.Println(len(s3))


打印结果:66


拼接使用+或者Sprintf


name := "产品经理"
word := "Lucky"
ss := name + word
fmt.Println(name + word)
fmt.Println(ss)
ss1 := fmt.Sprintf("%s%s", name, word) //和Printf相比在开头多了一个 S
fmt.Println(ss1)


打印结果都是:产品经理Lucky

注意:注意fmt拼接字符串的函数和Printf相比在开头多了一个S


包含判断


ss := "产品经理Lucky"
fmt.Println(strings.Contains(ss, "王中阳")) //是否包含指定字符串
fmt.Println(strings.HasPrefix(ss, "王中阳")) //是否以指定字符串开头
fmt.Println(strings.HasSuffix(ss, "王中阳")) //是否以指定字符串结尾


打印结果都是:false


子串出现的位置


s4 := "abcdecd"
s5 := "cd"
fmt.Println(strings.Index(s4, s5))     //第一次出现的位置
fmt.Println(strings.LastIndex(s4, s5)) //最后一次出现的位置


打印结果:2 5


字符串转数组(分割字符转) Split


s3 := `/Users/wangzhongyang/Code/go/src/github.com/studygo/day01/08string`
ret := strings.Split(s3, "/")
fmt.Println(ret)


打印结果:[ Users wangzhongyang Code go src github.com studygo day01 08string]


数组转字符串(拼接字符转)Join


fmt.Println(strings.Join(ret, "-"))


打印结果:-Users-wangzhongyang-Code-go-src-github.com-studygo-day01-08string


fmt


Go的fmt是常用的格式化代码工具

今天介绍一下fmt的日常用法:fmt.Printf()


数值相关


n := 100
fmt.Printf("类型:%T\n", n) //类型
fmt.Printf("值:%v\n", n) //值
fmt.Printf("二进制:%b\n", n) //二进制binary
fmt.Printf("十进制:%d\n", n) //十进制decimal
fmt.Printf("八进制:%o\n", n) //八进制Octal
fmt.Printf("十六进制:%x\n", n) //十六进制Hexadecimal


输出结果:


类型:int
值:100
二进制:1100100
十进制:100
八进制:144
十六进制:64


字符串相关


s := "wangzhongyang"
fmt.Printf("字符串:%s\n", s)  //字符串
fmt.Printf("值:%v\n", s)  //值
fmt.Printf("字符:%#c\n", s) //字符
fmt.Printf("值 另外返回类型的标识符:%#v\n", s) //值 另外返回类型的标识符


输出结果:


字符串:wangzhongyang
值:wangzhongyang
字符:%!c(string=wangzhongyang)
值 另外返回类型的标识符:"wangzhongyang"


相关文章
|
5月前
|
Go
Go string bytes、strings、strconv和unicode包相关方法
Go string bytes、strings、strconv和unicode包相关方法
50 0
|
5月前
|
Go
go fmt包格式化
go fmt包格式化
57 0
|
11月前
|
Go
go string to int 字符串与整数型的互换
go string to int 字符串与整数型的互换
62 0
|
2月前
|
安全 Go
go 中的 fmt 占位符
go 中的 fmt 占位符
|
2月前
|
Go
Go - 学习 grpc.Dial(target string, opts …DialOption) 的写法
Go - 学习 grpc.Dial(target string, opts …DialOption) 的写法
52 12
|
2月前
|
存储 安全 Go
Go 面试题:string 是线程安全的吗?
Go 面试题:string 是线程安全的吗?
|
3月前
|
存储 Go
go语言中fmt格式化包和内置函数汇总
【7月更文挑战第10天】本文介绍fmt包和`Errorf`用于创建格式化的错误消息。`fmt`包还涉及一些接口,如`Formatter`、`GoStringer`、`ScanState`、`Scanner`和`Stringer`,支持自定义格式化和输入/输出处理。
59 1
|
4月前
|
程序员 Go
【Go语言精进之路】Go语言fmt包深度探索:格式化输入输出的利器
【Go语言精进之路】Go语言fmt包深度探索:格式化输入输出的利器
95 3
|
5月前
|
Go 开发者
代码整洁利器:go fmt命令详解
代码整洁利器:go fmt命令详解
365 0
|
5月前
|
存储 编译器 Go
go语言第三章(fmt 输入与输出)
go语言第三章(fmt 输入与输出)
50 0