基本模式
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. Centos7 配置rsyslog客户端接收远程日志

    rsyslog 因为路由器我设定每天重启,但是日志一重启就会清除,并且路由器最多只能保存1024条记录,所以我想把路由器的日志记录到一台服务器上,发现路由器包含远程日志功能 于是我就在我的centos ...

  2. 01scikit-learn数据集下载

    In [2]: from sklearn.datasets import load_iris iris = load_iris() iris.keys() Out[2]: dict_keys(['da ...

  3. 2017ICPC南宁M The Maximum Unreachable Node Set (偏序集最长反链)

    题意:给你一张DAG,让你选取最多的点,使得这些点之间互相不可达. 思路:此问题和最小路径可重复点覆盖等价,先在原图上跑一边传递闭包,然后把每个点拆成两个点i, i + n, 原图中的边(a, b)变 ...

  4. thinkphp url和路由

    一.入口模块修改 修改public下的index 加入 define('BIND_MODULE','admin'); 即可将入门模块绑定到admin模块 <?php // [ 应用入口文件 ] ...

  5. kettle 通过JDBC 连接SQL Server(Error occurred while trying to connect to the database)

    在连接数据(MS SQLServer 2008)发现:Error occurred while trying to connect to the database 然后找资料看,都不是问题所在,最后一 ...

  6. R语言把DataFrame的一行变成向量

    在R语言里面,DataFrame的一列数据本质上可以认为是一个向量或列表,但是一行数据不是. 今天有一个31列的数据集,由于放在第一行的变量名格式不规范,读入数据的时候不能顺带读入变量名.于是跳过首行 ...

  7. 【leetcode】712. Minimum ASCII Delete Sum for Two Strings

    题目如下: 解题思路:本题和[leetcode]583. Delete Operation for Two Strings 类似,区别在于word1[i] != word2[j]的时候,是删除word ...

  8. 对webpack的初步研究3

    Output配置output配置选项告诉webpack如何将编译后的文件写入磁盘.请注意,虽然可以有多个entry点,但只output指定了一个配置. A filename to use for th ...

  9. IDEA git 合并多个commit

    当前三个commit,demo1,demo2,demo3 选择demo1右键 选择action 跟着指示操作,最后合并 时间线: Log 框时间线:是从上到下,越来越早. 弹出框时间线:是从上到下,越 ...

  10. 20180805-Java 异常处理

    try{ //程序代码}catch(ExceptionName e1){ //Catch 块} 下面的例子中声明有两个元素的一个数组,当代码试图访问数组的第三个元素的时候就会抛出一个异常. //文件名 ...