1. 程式人生 > 其它 >Go語言中文文件06-常用標準庫

Go語言中文文件06-常用標準庫

fmt

Print

點選檢視程式碼
func Print(a ...interface{}) (n int, err error)
func Printf(format string, a ...interface{}) (n int, err error)
func Println(a ...interface{}) (n int, err error)

Fprint

將內容輸出一個io.Writer介面型別的變數w。

點選檢視程式碼
func Fprint(w io.Writer, a ...interface{}) (n int, err error)
func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)
func Fprintln(w io.Writer, a ...interface{}) (n int, err error)

Sprint

點選檢視程式碼
func Sprint(a ...interface{}) string
func Sprintf(format string, a ...interface{}) string
func Sprintln(a ...interface{}) string

Error

Errorf函式根據format引數生成格式化字串並返回一個包含該字串的錯誤。

func Errorf(format string, a ...interface{}) error

Scan

func Scan(a ...interface{}) (n int, err error)

Scanf

func Scanf(format string, a ...interface{}) (n int, err error)


fmt.Scanf為輸入資料指定了具體的輸入內容格式,只有按照格式輸入資料才會被掃描並存入對應變數。

Scanln

Scanln類似Scan,它在遇到換行時才停止掃描。最後一個數據後面必須有換行或者到達結束位置。
本函式返回成功掃描的資料個數和遇到的任何錯誤。

buffo.NewReader

想完整獲取輸入的內容,而輸入的內容可能包含空格。

Fscan

點選檢視程式碼
func Fscan(r io.Reader, a ...interface{}) (n int, err error)
func Fscanln(r io.Reader, a ...interface{}) (n int, err error)
func Fscanf(r io.Reader, format string, a ...interface{}) (n int, err error)

Sscan

點選檢視程式碼
func Sscan(str string, a ...interface{}) (n int, err error)
func Sscanln(str string, a ...interface{}) (n int, err error)
func Sscanf(str string, format string, a ...interface{}) (n int, err error)

Time

時間型別

time.Time
獲取當前時間:time.Now()

時間戳

time.Now().Unix()時間戳
使用time.Unix()函式可以將時間戳轉為時間格式。

時間間隔

time.Duration表示1納秒,time.Second表示1秒。

時間操作

點選檢視程式碼
func (t Time) Add(d Duration) Time
Sub,Equal, Before, After

定時器

使用time.Tick(時間間隔)來設定定時器,定時器的本質上是一個通道(channel)。

時間格式化

點選檢視程式碼
func formatDemo() {
    now := time.Now()
    // 格式化的模板為Go的出生時間2006年1月2號15點04分 Mon Jan
    // 24小時制
    fmt.Println(now.Format("2006-01-02 15:04:05.000 Mon Jan"))
    // 12小時制
    fmt.Println(now.Format("2006-01-02 03:04:05.000 PM Mon Jan"))
    fmt.Println(now.Format("2006/01/02 15:04"))
    fmt.Println(now.Format("15:04 2006/01/02"))
    fmt.Println(now.Format("2006/01/02"))
}

Flag

os.Args獲取命令列引數,是一個[]string。
兩種常用的定義命令列flag引數的方法:
flag.Type(flag名, 預設值, 幫助資訊)*Type
flag.TypeVar() flag.TypeVar(Type指標, flag名, 預設值, 幫助資訊)
定義好命令列flag引數後,需要通過呼叫flag.Parse()來對命令列引數進行解析。
flag其他函式
flag.Args() ////返回命令列引數後的其他引數,以[]string型別
flag.NArg() //返回命令列引數後的其他引數個數
flag.NFlag() //返回使用的命令列引數個數

Log

可以通過呼叫函式Print系列(Print|Printf|Println)、Fatal系列(Fatal|Fatalf|Fatalln)、和Panic系列(Panic|Panicf|Panicln)來使用。
Fatal系列函式會在寫入日誌資訊後呼叫os.Exit(1)。Panic系列函式會在寫入日誌資訊後panic。
log標準庫中的Flags函式會返回標準logger的輸出配置,而SetFlags函式用來設定標準logger的輸出配置。

func Flags() int
func SetFlags(flag int)

log標準庫中還提供了關於日誌資訊字首的兩個方法:

func Prefix() string
func SetPrefix(prefix string)

其中Prefix函式用來檢視標準logger的輸出字首,SetPrefix函式用來設定輸出字首。

func SetOutput(w io.Writer)

SetOutput函式用來設定標準logger的輸出目的地,預設是標準錯誤輸出。
log標準庫中還提供了一個建立新logger物件的建構函式–New,支援我們建立自己的logger示例。New函式的簽名如下:

func New(out io.Writer, prefix string, flag int) *Logger

New建立一個Logger物件。其中,引數out設定日誌資訊寫入的目的地。引數prefix會新增到生成的每一條日誌前面。引數flag定義日誌的屬性(時間、檔案等等)。

I/O操作

點選檢視程式碼
func Create(name string) (file *File, err Error)
根據提供的檔名建立新的檔案,返回一個檔案物件,預設許可權是0666
func NewFile(fd uintptr, name string) *File
根據檔案描述符建立相應的檔案,返回一個檔案物件
func Open(name string) (file *File, err Error)
只讀方式開啟一個名稱為name的檔案
func OpenFile(name string, flag int, perm uint32) (file *File, err Error)
開啟名稱為name的檔案,flag是開啟的方式,只讀、讀寫等,perm是許可權
func (file *File) Write(b []byte) (n int, err Error)
寫入byte型別的資訊到檔案
func (file *File) WriteAt(b []byte, off int64) (n int, err Error)
在指定位置開始寫入byte型別的資訊
func (file *File) WriteString(s string) (ret int, err Error)
寫入string資訊到檔案
func (file *File) Read(b []byte) (n int, err Error)
讀取資料到b中
func (file *File) ReadAt(b []byte, off int64) (n int, err Error)
從off開始讀取資料到b中
func Remove(name string) Error
刪除檔名為name的檔案

bufio包實現了帶緩衝區的讀寫,是對檔案讀寫的封裝。

Strconv

ParseInt()

func ParseInt(s string, base int, bitSize int) (i int64, err error)
ParseUint類似ParseInt但不接受正負號,用於無符號整型。