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

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

查看所有标签

猜你喜欢:

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

精通正则表达式

精通正则表达式

弗里德尔 / 东南大学出版社 / 2005-9 / 72.00元

正则表达式是一种用来操作文本和数据的强大工具。近年来,它们快速广泛传播,并被多种流行工具和语言作为标准特性提供,如Perl、Java、VB.NET、C#(及任何使用.NET框架的语言)、PHP、Python、Ruby、Tcl、MySQL、awk、Emacs等。 如果还未使用过正则表达式,从本书中您将发现一个掌控数据的全新世界。如果使用过它们,您将会充分意识到本书空前的深度和广度。如果您认为自己已经......一起来看看 《精通正则表达式》 这本书的介绍吧!

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

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具