go 学习之fmt包

基本模式
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", 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: %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

 

转载于:https://www.cnblogs.com/tigerzhouv587/p/11491366.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 下载安装Go语言的开发环境 Go语言的官方网站是golang.org,你可以在这里下载安装Go语言的开发环境。安装完毕后,可以在终端或命令行中输入go version来确认安装是否成功。 2. 学习Go语言的基础语法 学习一门编程语言,首先要掌握的是它的基础语法。可以通过阅读官方文档、教程、书籍等方式来学习Go语言的基础语法。建议先学习以下内容: - 变量和常量 - 数据类型 - 函数 - 控制结构(if/else、for、switch) - 数组和切片 - 结构体和指针 3. 编写第一个Go程序 在学习了Go语言的基础语法后,可以试着编写第一个Go程序。可以使用任何文本编辑器(如Notepad、Sublime Text、Visual Studio Code等)来编写代码。以下是一个简单的“Hello World”程序: ``` package main import "fmt" func main() { fmt.Println("Hello, world!") } ``` 将代码保存为hello.go,然后在终端或命令行中输入以下命令来运行程序: ``` go run hello.go ``` 如果一切顺利,终端或命令行中将会输出“Hello, world!”。 4. 继续深入学习Go语言 在学习了Go语言的基础语法和编写第一个程序后,可以继续深入学习Go语言的高级特性,比如: - 并发编程 - 接口和多态 - 和模块化编程 - 错误处理 - JSON编码和解码 - 网络编程 可以阅读官方文档、书籍、博客等资源来学习这些高级特性。同时,建议多实践,写一些小项目或练习题来加深对Go语言的理解和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值