Go語言中文文件06-常用標準庫
fmt
點選檢視程式碼
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
定時器
使用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但不接受正負號,用於無符號整型。