golang fmt(格式换 I O接口)

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

内容简介: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

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

查看所有标签

猜你喜欢:

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

How to Solve It

How to Solve It

Zbigniew Michalewicz、David B. Fogel / Springer / 2004-03-01 / USD 59.95

This book is the only source that provides comprehensive, current, and detailed information on problem solving using modern heuristics. It covers classic methods of optimization, including dynamic pro......一起来看看 《How to Solve It》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具