Golang 筆記
  • Introduction
  • 安裝Golang
    • 本地編譯與安裝第三方套件
    • 第一個 GO 程式
    • export 與 import
    • 使用 go mod
  • 基本工具
  • DataBase操作
    • MySQL
    • 使用 ORM
    • MongoDB
  • 基本語法
    • Variable
    • BSON
    • JSON
    • 時間相關
    • Interface
    • Error
    • 型別
    • 字串
    • defer
    • panic, recover
    • Channel 與Goroutine
      • 讀寫鎖
      • for select 與 for range
      • UnBuffered channel 與 Buffered channel
    • Function
    • pointer
    • regExp
    • fmt
    • Make vs New
    • struct
    • Array, Slice 陣列
    • map
  • 核心模組
    • Reflect
    • File
    • Signal
    • BuiltIn
    • Sync
    • IO
    • Sort
    • http
    • crypto
    • context
  • 第三方模組
    • Dom Parser
    • gin 框架
    • Websocket
    • Iris框架
      • 讀取 Body 資料
      • 相關範例
    • Fiber 框架
    • 自動重啟 server 工具
    • go-jwt
  • 測試
  • 原始碼解析
  • 常見問題
    • 資料存取不正確
    • Data races
Powered by GitBook
On this page
  • printf
  • sprintf
  • Fprintf
  • 附錄:

Was this helpful?

  1. 基本語法

fmt

https://golang.org/pkg/fmt/

Print: 輸出到控制台,不接受任何格式化操作 
Println: 輸出到控制台並換行 
Printf : 只可以列印出格式化的字符串。只可以直接輸出字符串類型的變量(不可以輸出別的類型) 
Sprintf:格式化並返回一個字符串而不帶任何輸出 
Fprintf:格式化並輸出到 io.Writers 而不是 os.Stdout

printf

package main

import (
    "fmt"
)

type person struct {
    height int
    weight int
}

func main() {
    Jason := person{178, 72}

    fmt.Print(Jason)
    fmt.Println(Jason)        // 不換行
    fmt.Printf("%v\n", Jason) // 可選擇使用什麼格式來印
    fmt.Printf("%+v\n", Jason)
}

結果如下:

{178 72}{178 72}
{178 72}
{height:178 weight:72}

sprintf

s := fmt.Sprintf("%s ","string") //不會輸出,只會轉換格式為string
fmt.Println(s)

Fprintf

輸出到其他 io,例如http response

fmt.Fprintf(w, "%d", 123)

附錄:

        %v 輸出結構體 {10 30}
        %+v 輸出結構體顯示字段名 {one:10 tow:30}
        %#v 輸出結構體源代碼片段 main.Point{one:10, tow:30}
        %T 輸出值的類型     main.Point
        %t 輸出格式化boolean true
        %d`輸出標准的十進制格式化 100
        %b`輸出標准的二進制格式化 99 對應 1100011
        %c`輸出定整數的對應字符  99 對應 c
        %x`輸出十六進制編碼  99 對應 63
        %f`浮點數
        %e`輸出科學  123400000.0 對應 1.234000e+08
        %E`輸出科學  123400000.0 對應 1.234000e+08
        %s 進行基本的字符串輸出   "\"string\""  對應 "string"
        %q  a single-quoted character literal safely escaped with Go syntax.
        %p 輸出一個指針的值   &jgt 對應 0xc00004a090
        % 後面使用數字來控制輸出寬度 默認結果使用右對齊並且通過空格來填充空白部分
        %2.2f  指定浮點型的輸出寬度 1.2 對應  1.20
        %*2.2f  指定浮點型的輸出寬度對齊,使用 `-` 標志 1.2 對應  *1.20
PreviousregExpNextMake vs New

Last updated 5 years ago

Was this helpful?

https://golang.org/pkg/fmt/