golang fmt(格式换 I O接口)

栏目: Go · 发布时间: 5年前

内容简介:fmt 方法可以大致分为Print 方法的几种模式模式可组合, 例如

基本模式

fmt 方法可以大致分为 print , scan 两类, 根据基础方法可以构建特定方法。

Print
scan

Print

Print 方法的几种模式

Fprint
Sprint
Printf
Println

模式可组合, 例如 Fprintf , Sprintf

Print

默认格式化,返回字符串

func Print(a ...interface{}) (n int, err error)
fmt.Print("name", 23, []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", 24)
    
    // n, err -> 6, nil

Sprint 字符模式

func Sprint(a ...interface{}) string
str := fmt.Sprint("name: %s", "coco")
    // -> name: coco

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
// 当出入参数数量达到时,跳出输入

从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
    // 以空格作为分割, 当数据不符合类型定义时,返回该类型的默认值

根据指定格式,提取标准输入数据

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
    */
    
    // 当输入不符合指定格式时,将返回错误,跳出输入

以换行符结束输入

func Scanln(a ...interface{}) (n int, err error)
var name string
    var age int

    fmt.Scanln(&name, &age)

    /*
        终端输入:
            coco 24 
            [换行, 结束输入]
    */
    
    // name, age -> coco 24

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Implementing Responsive Design

Implementing Responsive Design

Tim Kadlec / New Riders / 2012-7-31 / GBP 27.99

New devices and platforms emerge daily. Browsers iterate at a remarkable pace. Faced with this volatile landscape we can either struggle for control or we can embrace the inherent flexibility of the w......一起来看看 《Implementing Responsive Design》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器