go 学习之fmt包
2024-09-03 18:56:23
基本模式
fmt 方法可以大致分为 print, scan两类, 根据基础方法可以构建特定方法。
Print 将参数写入字符串或io.writer
scan 从字符串或 io.Reader 读取指定数据, 并输出
Print
Print 方法的几种模式
基础模式: [name] Print 返回默认格式化的字符串
写入模式: F[name] 返回写入字节 例如: Fprint
字符模式: S[name] 返回字符 例如: Sprint
模板模式: [name]f 根据模板格式化 例如: Printf
换行模式: [name]ln 输出后带换行 例如: Println
模式可组合, 例如 Fprintf, Sprintf
默认格式化,返回字符串
func Print(a ...interface{}) (n int, err error) fmt.Print("name", , []byte("show me"))
// -> name23 [115 104 111 119 32 109 101] Printf 模板模式
根据模板使用默认格式输出
func Printf(format string, a ...interface{}) ( str string, err error) str, _ := fmt.Printf("name: %s", "coco") // str -> "name: coco" Fprint 写入模式
将数据写入 io.Writer
func Fprint(w io.Writer, a ...interface{}) (n int, err error) file, _ := os.OpenFile("./target.js", os.O_RDWR, os.ModeAppend) n, err := fmt.Fprint(file, "name", ) // n, err -> 6, nil Sprint 字符模式
func Sprint(a ...interface{}) string str := fmt.Sprint("name: %s", "coco")
// ->name: %stiger
Scan
Scan 方法的几种模式, 所有方法都返回 写入字节数(n)及错误(err)
基础模式: [name] Scan 将输入值写入参数中
读取模式: F[name] 从io.Reader 读取数据 例如: Fscan
字符模式: S[name] 从字符串读取数据 例如: Sscan
模板模式: [name]f 根据模板提取数据 例如: scanf
换行模式: [name]ln 以换行符号做读取结束 例如: scanln
Scan
根据标准输入,提取数据
func Scan(a ...interface{}) (n int, err error) var name string
var age int // 这里参数需要传入指针类型,获取写入数据
if _, err := fmt.Scan(&name, &age); err != nil{
fmt.Println(err)
return
} fmt.Printf("name: $s, age: %d", name, age) // 终端输入 coco 24
// 终端输出 name: coco, age: 24
// 当出入参数数量达到时,跳出输入 Fscan 从io.Reader读取数据,并解析 func Fscan(r io.Reader, a ...interface{}) (n int, err error) // target.js
let name = "coco" // main.go var t string
var n string
file, _ := os.Open("./target.js")
fmt.Fscan(file, &t, &n) // t, n -> let 0
// 以空格作为分割, 当数据不符合类型定义时,返回该类型的默认值 Scanf 根据指定格式,提取标准输入数据
func Scanf(format string, a ...interface{}) (n int, err error) var name string
var age int fmt.Scanf("name: %s\nage: %d", &name, &age) fmt.Println(name,'\n', age) /*
终端输入:
name: coco
age: 24
*/ /*
终端输出:
coco
24
*/ // 当输入不符合指定格式时,将返回错误,跳出输入 Scanln 以换行符结束输入
func Scanln(a ...interface{}) (n int, err error) var name string
var age int fmt.Scanln(&name, &age) /*
终端输入:
coco 24
[换行, 结束输入]
*/ // name, age -> coco 24
最新文章
- ASM磁盘组扩容流程
- form表单提交时,action怎么带参数
- C++程序设计基础
- 强大的命令行工具wmic
- ThinkCMF-smeta扩展字段
- gspx请求周期(备忘)
- js 表单内容使用ajax以json格式混合提交
- Linux TC (traffic control)
- 问题.NETSystem.Data.OleDb.OleDbException 操作必须使用一个可更新的查询
- UVA 11991 Easy Problem from Rujia Liu?(vector map)
- Linux统计文件夹下文件信息
- UP UP UP!(dp)
- CSS+DIV+JQuery实际的视频汇总
- UE4 内容示例网络同步Learn
- 1.5 下载和安装VMWare
- CentOS6.5 安装vncserver实现图形化访问
- PyCharm+SVN
- HTML中鼠标滚轮事件onmousewheel
- Permission denied: user=root, access=WRITE, inode=";/";:hadoopuser:supergroup:drwxr-xr-x
- dj 用户认证组件