基本模式
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

Print
默认格式化,返回字符串
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

最新文章

  1. ASM磁盘组扩容流程
  2. form表单提交时,action怎么带参数
  3. C++程序设计基础
  4. 强大的命令行工具wmic
  5. ThinkCMF-smeta扩展字段
  6. gspx请求周期(备忘)
  7. js 表单内容使用ajax以json格式混合提交
  8. Linux TC (traffic control)
  9. 问题.NETSystem.Data.OleDb.OleDbException 操作必须使用一个可更新的查询
  10. UVA 11991 Easy Problem from Rujia Liu?(vector map)
  11. Linux统计文件夹下文件信息
  12. UP UP UP!(dp)
  13. CSS+DIV+JQuery实际的视频汇总
  14. UE4 内容示例网络同步Learn
  15. 1.5 下载和安装VMWare
  16. CentOS6.5 安装vncserver实现图形化访问
  17. PyCharm+SVN
  18. HTML中鼠标滚轮事件onmousewheel
  19. Permission denied: user=root, access=WRITE, inode="/":hadoopuser:supergroup:drwxr-xr-x
  20. dj 用户认证组件

热门文章

  1. 微信支付MD5签名算法C#版,ASCII码字典序排序0,A,B,a,b
  2. hdu 4655 Cut Pieces(想法题)
  3. spring+mybatis+log4j 输出SQL
  4. 前端每日实战:32# 视频演示如何用纯 CSS 创作六边形按钮特效
  5. Vue 组件间的传值(通讯)
  6. B2C自营商城的订单设计方案
  7. nodejs廖雪峰大神教程
  8. CKEDITOR无缝粘贴word
  9. ubuntu18.04-安装最新cmake
  10. Python_007(深浅拷贝)