go语言格式化字符串 go字符串换行( 三 )


Scan(arg列表)
// 以动词 v 解析字符串,换行结束解析
Scanln(arg列表)
// 根据格式字符串中指定的格式解析字符串
// 格式字符串中的换行符必须和输入端的换行符相匹配 。
Scanf(格式字符串, arg列表)
// Scan 类函数会返回已处理的 arg 数量和遇到的错误信息 。
【格式字符串】
格式字符串类似于 Printf 中的格式字符串,但下面的动词和旗标例外:
p:无效
T:无效
e/E/f/F/g/G:功能相同,都是扫描浮点数或复数
s/v:对字符串而言,扫描一个被空白分隔的子串
对于整型 arg 而言,v 动词可以扫描带有前导 0 或 0x 的八进制或十六进制数值 。
宽度被用来指定最大扫描宽度(不会跨越空格),精度不被支持 。
如果 arg 实现了 Scanner 接口,将调用它的 Scan 方法扫描相应数据 。只有基础类型和实现了 Scanner 接口的类型可以使用 Scan 类方法进行扫描 。
【注意】
连续调用 FScan 可能会丢失数据,因为 FScan 中使用了 UnreadRune 对读取的数据进行撤销 , 而参数 io.Reader 只有 Read 方法,不支持撤销 。比如:
Go语言的%d,%p,%v等占位符的使用这些是死知识,把常用的记住,不常用的直接查表就行了
golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf 。
type Human struct {
Name string
}
var people = Human{Name:"zhangsan"}
golang没有 '%u' 点位符,若整数为无符号类型 , 默认就会被打印成无符号的 。
宽度与精度的控制格式以Unicode码点为单位 。宽度为该数值占用区域的最小宽度;精度为小数点之后的位数 。
操作数的类型为int时,宽度与精度都可用字符 '*' 表示 。
对于 %g/%G 而言,精度为所有数字的总数,例如:123.45,%.4g 会打印123.5,(而 %6.2f 会打印123.45) 。
%e 和 %f 的默认精度为6
对大多数的数值类型而言,宽度为输出的最小字符数,如果必要的话会为已格式化的形式填充空格 。
而以字符串类型,精度为输出的最大字符数,如果必要的话会直接截断 。
使用起来很简单,一般配合fmt.Printf()使用,因为fmt的Printf()是有格式的输出,切忌使用Println(),否则将会以字符串的形式输出 。
查看原文: golang fmt格式“占位符”
Go语言基础语法(一)本文介绍一些Go语言go语言格式化字符串的基础语法 。
先来看一个简单的go语言代码go语言格式化字符串:
go语言的注释方法:
代码执行结果:
下面来进一步介绍go的基础语法 。
go语言中格式化输出可以使用 fmt 和 log 这两个标准库go语言格式化字符串,
常用方法:
示例代码:
执行结果:
更多格式化方法可以访问中的fmt包 。
log包实现go语言格式化字符串了简单的日志服务go语言格式化字符串,也提供了一些格式化输出的方法 。
执行结果:
下面来介绍一下go的数据类型
【go语言格式化字符串 go字符串换行】下表列出了go语言的数据类型:
int、float、bool、string、数组和struct属于值类型 , 这些类型的变量直接指向存在内存中的值;slice、map、chan、pointer等是引用类型,存储的是一个地址,这个地址存储最终的值 。
常量是在程序编译时就确定下来的值,程序运行时无法改变 。
执行结果:
执行结果:
Go 语言的运算符主要包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符以及指针相关运算符 。
算术运算符:
关系运算符:

推荐阅读