go語言的標準庫覆蓋網路、系統、加密、編碼、圖形等各個方面,可以直接使用標準庫的 http 包進行 http 協議的收發處理;網路庫基於高效能的作業系統通訊模型(linux 的 epoll、windows 的 iocp);所有的加密、編碼都內建支援,不需要再從第三方開發者處獲取
go 語言的編譯器也是標準庫的一部分,通過詞法器掃瞄原始碼,使用語法樹獲得原始碼邏輯分支等。go 語言的周邊工具也是建立在這些標準庫上。在標準庫上可以完成幾乎大部分的需求
go 語言的標準庫以包的方式提供支援,下表是 go 語言標準庫中常見的包及其功能
go語言標準庫包名 功 能
bufio 帶緩衝的 i/o 操作
bytes 實現位元組操作
container 封裝堆、列表和環形列表等容器
crypto 加密演算法
database 資料庫驅動和介面
debug 各種除錯檔案格式訪問及除錯功能
encoding 常見演算法如 json、xml、base64 等
flag 命令列解析
fmt 格式化操作
go go 語言的詞法、語法樹、型別等。可通過這個包進行**資訊提取和修改
html html 轉義及模板系統
image 常見圖形格式的訪問及生成
io 實現 i/o 原始訪問介面及訪問封裝
math 數學庫
net 網路庫,支援 socket、http、郵件、rpc、smtp 等
os 作業系統平台不依賴平台操作封裝
path 相容各作業系統的路徑操作實用函式
plugin go 1.7 加入的外掛程式系統。支援將**編譯為外掛程式,按需載入
reflect 語言反射支援。可以動態獲得**中的型別資訊,獲取和修改變數的值
regexp 正規表示式封裝
runtime 執行時介面
sort 排序介面
strings 字串轉換、解析及實用函式
time 時間介面
text 文字模板及 token 詞法器
fmt(格式化操作)
字串格式化時常用動詞及功能
動 詞 功 能
%v 按值的本來值輸出
%+v 在 %v 基礎上,對結構體欄位名和值進行展開
%#v 輸出 go 語言語法格式的值
%t 輸出 go 語言語法格式的型別和值
%% 輸出 % 本體
%b 整型以二進位制方式顯示
%o 整型以八進位制方式顯示
%d 整型以十進位制方式顯示
%x 整型以十六進製制方式顯示
%x 整型以十六進製制、字母大寫方式顯示
%u unicode 字元
%f 浮點數完整精度輸出;%.2f 2位精度輸出
%p 指標,十六進製制方式顯示
strings(字串操作)
package main
import
("fmt"
"strings"
"strconv"
)func
main()
}
time 包中的常量
const
( nanosecond duration =
1 microsecond =
1000
* nanosecond
millisecond =
1000
* microsecond
second =
1000
* millisecond
minute =
60* second
hour =
60* minute
)
時間的型別為 duration,而 duration 實際是乙個 int64 的型別,可以轉換;
duration.string() 可以將 duration 的值轉為字串
now := time.
now(
)fmt.
printf
("type:%t \n"
, now)
fmt.
printf
("value:%v \n"
, now)
執行結果:
type
:time.time
value:
2019-05
-2517:
57:57.9463214
+0800 cst m=
+0.003026301
自定義時間
格式:func parse(layout, value string) (time, error)
parse 解析乙個格式化的時間字串並返回它代表的時間。
layout 定義輸入的時間格式,value 的時間格式需與 layout 保持一致
t,
error
:= time.
parse
("2006-01-02 15:04:05"
,"2019-05-25 19:00:00")if
error
==nil
執行結果:
time.time
2019-05
-2519:
00:00+
0000 utc
獲取time.time 型別的 年,月,日,時,分,秒
year := time.now().year()
month := time.now().month()
day := time.now().day()
hour := time.now().hour()
minute := time.now().minute()
second := time.now().second()
// 秒級
timestamp := time.
now().
unix()
fmt.
println
(timestamp)
// 毫秒
millitimestamp := time.
now().
unixnano()
/1e6
fmt.
println
(millitimestamp)
// 納秒
nanotimestamp := time.
now().
unixnano()
fmt.
println
(nanotimestamp)
執行結果:
1558782662
1558782662752
1558782662755344000
demo:統計程式執行耗時
func
stats()
func
main()
執行結果:
1001
標準函式time 和localtime
1.time 函式 返回1970 1 1,00 00 00以來經過的秒數 原型 time t time time t calptr 結果可以通過返回值,也可以通過引數得到,見例項 標頭檔案 返回值 成功 秒數,從1970 1 1,00 00 00 可以當成整型輸出或用於其它函式 失敗 1 例 tim...
Python常用標準庫 time
這個time庫提供了各種操作時間值。方法 描述示例 time.asctime tuple 將乙個時間元組轉換成乙個可讀的24個時間字串 time.asctime time.localtime sat nov 12 01 19 00 2016 time.ctime seconds 字串型別返回當前時間...
golang標準庫 time包
時間型別,包含了秒和納秒以及location type month int 月份.定義了十二個月的常量 type weekday int 周,定義了一周的七天 type duration int64 持續時間.定義了以下持續時間型別.多用於時間的加減 需要傳入duration做為引數的時候.可以直接...