天天看點

golang int 轉string_資料結構和算法(Golang實作)(7)簡單入門Golang-标準庫

使用标準庫

一、避免重複造輪子

官方提供了很多庫給我們用,是封裝好的輪子,比如包

fmt

,我們多次使用它來列印資料。

我們可以檢視到其裡面的實作:

package fmt

func Println(a ...interface{}) (n int, err error) {
    return Fprintln(os.Stdout, a...)
}

func Printf(format string, a ...interface{}) (n int, err error) {
    return Fprintf(os.Stdout, format, a...)
}

func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {
    p := newPrinter()
    p.doPrintf(format, a)
    n, err = w.Write(p.buf)
    p.free()
    return
}

func Fprintln(w io.Writer, a ...interface{}) (n int, err error) {
    p := newPrinter()
    p.doPrintln(a)
    n, err = w.Write(p.buf)
    p.free()
    return
}
           

函數

Println

是直接列印并換行,

Printf

的作用是格式化輸出,如:

// 列印一行空行
    fmt.Println()

    // 列印 4 5 6
    fmt.Println(4, 5, 6)

    // 占位符 %d 列印數字,n換行
    fmt.Printf("%dn", 2)

    // 占位符 %s 列印字元串,n換行
    fmt.Printf("%sn", "cat")

    // 占位符 %v或者%#v 列印任何類型,n換行
    fmt.Printf("%#v,%vn", "cat", 33)

    // 更多示例
    fmt.Printf("%s,%d,%s,%v,%#vn", "cat", 2, "3", map[int]string{1: "s"}, map[int]string{1: "s"})
           

輸出:

4 5 6
2
cat
"cat",33
cat,2,3,map[int]string{1:"s"}
           

函數

Printf

使用到了另外一個函數

Fprintf

,而函數

Fprintf

内部又調用了其他的結構體方法。

對于我們經常使用的

func Printf(format string, a ...interface{})

,我們傳入

format

和許多變量

a ...interface{}

,就可以在控制台列印出我們想要的結果。如:

fmt.Printf("%s,%d,%s,%v,%#vn", "cat", 2, "3", map[int]string{1: "s"}, map[int]string{1: "s"})
           

其中

%

是占位符,表示後面的變量逐個占位。占位符後面的小寫字母表示占位的類型,

%s

表示字元串的占位,

%d

表示數字類型的占位,

%v

%#v

表示未知類型的占位,會自動判斷類型後列印,加

#

會列印得更詳細一點。因為該列印不會換行,我們需要使用

n

換行符來換行。

在某些時候,我們可以使用官方庫或别人寫的庫,畢竟輪子重造需要時間。

同時,如果想開發速度提高,建議安裝

IDE

,也就是

Integrated Development Environment

(內建開發環境),如

Goland

(原生支援

Golang

) 或

IDEA

軟體(需安裝插件)。

二、總結

我們隻學習了

Golang

語言的一個子集,想更詳細的學習,可以安裝

docker

後,打開終端:

# 拉鏡像
docker pull hunterhug/gotourzh

# 背景運作
docker run -d -p 9999:9999 hunterhug/gotourzh
           

打開浏覽器輸入:127.0.0.1:9999 更全面地學習。

後面的算法分析和實作,會使用

Golang

來舉例。

系列文章入口

我是陳星星,歡迎閱讀我親自寫的

資料結構和算法(Golang實作)

,文章首發于

目錄 · 資料結構和算法(Golang實作)​goa.lenggirl.com

  • 資料結構和算法(Golang實作)(1)簡單入門Golang-前言
  • 資料結構和算法(Golang實作)(2)簡單入門Golang-包、變量和函數
  • 資料結構和算法(Golang實作)(3)簡單入門Golang-流程控制語句
  • 資料結構和算法(Golang實作)(4)簡單入門Golang-結構體和方法
  • 資料結構和算法(Golang實作)(5)簡單入門Golang-接口
  • 資料結構和算法(Golang實作)(6)簡單入門Golang-并發、協程和信道
  • 資料結構和算法(Golang實作)(7)簡單入門Golang-标準庫
  • 資料結構和算法(Golang實作)(8.1)基礎知識-前言
  • 資料結構和算法(Golang實作)(8.2)基礎知識-分治法和遞歸
  • 資料結構和算法(Golang實作)(9)基礎知識-算法複雜度及漸進符号
  • 資料結構和算法(Golang實作)(10)基礎知識-算法複雜度主方法
  • 資料結構和算法(Golang實作)(11)常見資料結構-前言
  • 資料結構和算法(Golang實作)(12)常見資料結構-連結清單
  • 資料結構和算法(Golang實作)(13)常見資料結構-可變長數組
  • 資料結構和算法(Golang實作)(14)常見資料結構-棧和隊列
  • 資料結構和算法(Golang實作)(15)常見資料結構-清單
  • 資料結構和算法(Golang實作)(16)常見資料結構-字典
  • 資料結構和算法(Golang實作)(17)常見資料結構-樹
  • 資料結構和算法(Golang實作)(18)排序算法-前言
  • 資料結構和算法(Golang實作)(19)排序算法-冒泡排序
  • 資料結構和算法(Golang實作)(20)排序算法-選擇排序
  • 資料結構和算法(Golang實作)(21)排序算法-插入排序
  • 資料結構和算法(Golang實作)(22)排序算法-希爾排序
  • 資料結構和算法(Golang實作)(23)排序算法-歸并排序
  • 資料結構和算法(Golang實作)(24)排序算法-優先隊列及堆排序
  • 資料結構和算法(Golang實作)(25)排序算法-快速排序
  • 資料結構和算法(Golang實作)(26)查找算法-哈希表
  • 資料結構和算法(Golang實作)(27)查找算法-二叉查找樹
  • 資料結構和算法(Golang實作)(28)查找算法-AVL樹
  • 資料結構和算法(Golang實作)(29)查找算法-2-3樹和左傾紅黑樹
  • 資料結構和算法(Golang實作)(30)查找算法-2-3-4樹和普通紅黑樹