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

go 学习之fmt包的更多相关文章

  1. Go语言学习之main包的讲解

    ### Go语言学习之main包的讲解 1.Go中main函数不支持任何返回值 2.可以通过os.Exit(0)来返回状态 func main(){ fmt.Println("hellow ...

  2. Golang fmt包使用小技巧

    h1 { margin-top: 0.6cm; margin-bottom: 0.58cm; direction: ltr; color: #000000; line-height: 200%; te ...

  3. Linux学习之RPM包管理-yum管理(十七)

    Linux学习之RPM包管理-yum管理 目录 IP地址配置 网络yum源 yum命令 光盘yum源搭建 IP地址配置 IP+子网掩码就可以在局域网(内网)使用. IP+子网掩码+网关+DNS就可以访 ...

  4. Linux学习之RPM包管理-rpm命令管理(十六)

    Linux学习之RPM包管理-rpm命令管理 目录 简介 RPM包依赖性 包全名与包名 rpm软件包安装 rpm软件包卸载 升级降级rpm软件包 rpm软件包的查询 rpm软件包校验 简介 RPM是R ...

  5. golang格式化输出-fmt包用法详解

    golang格式化输出-fmt包用法详解 注意:我在这里给出golang查询关于包的使用的地址:https://godoc.org    声明: 此片文章并非原创,大多数内容都是来自:https:// ...

  6. R语言网络爬虫学习 基于rvest包

    R语言网络爬虫学习 基于rvest包 龙君蛋君:2015年3月26日 1.背景介绍: 前几天看到有人写了一篇用R爬虫的文章,感兴趣,于是自己学习了.好吧,其实我和那篇文章R语言爬虫初尝试-基于RVES ...

  7. golang fmt包

    fmt fmt包实现了类似C语言printf和scanf的格式化I/O.主要分为向外输出内容和获取输入内容两大部分. 向外输出 标准库fmt提供了以下几种输出相关函数. Print Print系列函数 ...

  8. 『GoLang』fmt包的使用

    目录 1. fmt 包初识 2. 格式化 verb 应用 2.1 通用 2.2 布尔值 2.3 整数 2.4 浮点数与复数 2.5 字符串和 []byte 2.6 指针 2.7 其他 flag 2.8 ...

  9. Golang学习 - fmt 包

    ------------------------------------------------------------ // Print 将参数列表 a 中的各个参数转换为字符串并写入到标准输出中. ...

随机推荐

  1. 消灭 Java 代码的“坏味道”

    消灭 Java 代码的“坏味道” 原创: 王超 阿里巴巴中间件 昨天 导读 明代王阳明先生在<传习录>谈为学之道时说: 私欲日生,如地上尘,一日不扫,便又有一层.着实用功,便见道无终穷,愈 ...

  2. Linux 查找指定内容在哪个文件中

    在实际的工作中,忘记配置项放在哪个文件中时,可借助命令来查询. eg: 1.grep -r "查询内容"  文件目录    #这样查询出来的包括文件名+内容 grep -r -l ...

  3. alert(1) to win 8

    function escape(s) { return '<script>console.log("' + s.toUpperCase() + '")</scri ...

  4. tpcc-mysql测试mysql5.6 (xfs文件系统)

    操作系统版本:CentOS release 6.5 (Final)  2.6.32-431.el6.x86_64 #1 内存:32G CPU:Intel(R) Xeon(R) CPU E5-2450 ...

  5. Linux下python pip手动安装笔记

    今天查问题, 从redis集群中模糊查询某个key, 用一些重复的命令, 链接不同的node, redis-cli 去查, 感觉不舒服. 考虑写一些shell或py来简化一下. 一查环境, 安装了py ...

  6. python 在不同CPU上同时运行多个程序

    出处/From https://www.quora.com/If-you-run-Python-under-a-dual-core-CPU-then-can-you-run-two-Python-pr ...

  7. 批量去除输出数据文件名前面的"\output\“

    for file in \output\*; do mv "\(file" "\){file#\output\_}";done;

  8. JVM内存分配调优

    Reference: https://time.geekbang.org/column/article/108139 参考指标 GC频率:⾼频的FullGC会给系统带来⾮常⼤的性能消耗,虽然Minor ...

  9. [洛谷P3486]POI2009 KON-Ticket Inspector

    问题描述 Byteasar works as a ticket inspector in a Byteotian National Railways (BNR) express train that ...

  10. Cluster基础(五):配置tracker、配置storage、文件测试及web访问

    一.配置tracker 目标: FastDFS是一个分布式文件系统,主要的服务器角色有Tracker和Storage.本例安装一台Tracker,实现以下功能: 接受客户端的访问 检索存储节点,为客户 ...