<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 9.1 標準庫概述 像 `fmt`、`os` 等這樣具有常用功能的內置包在 Go 語言中有 150 個以上,它們被稱為標準庫,大部分(一些底層的除外)內置于 Go 本身。完整列表可以在 [Go Walker](https://gowalker.org/search?q=gorepos) 查看。 在貫穿本書的例子和練習中,我們都是用標準庫的包。可以通過查閱第 350 頁包中的內容快速找到相關的包的實例。這里我們只是按功能進行分組來介紹這些包的簡單用途,我們不會深入討論他們的內部結構。 - `unsafe`: 包含了一些打破 Go 語言“類型安全”的命令,一般的程序中不會被使用,可用在 C/C++ 程序的調用中。 - `syscall`-`os`-`os/exec`: - `os`: 提供給我們一個平臺無關性的操作系統功能接口,采用類Unix設計,隱藏了不同操作系統間差異,讓不同的文件系統和操作系統對象表現一致。 - `os/exec`: 提供我們運行外部操作系統命令和程序的方式。 - `syscall`: 底層的外部包,提供了操作系統底層調用的基本接口。 通過一個 Go 程序讓Linux重啟來體現它的能力。 示例 9.1 [reboot.go](https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/examples/chapter_9/reboot.go): ``` package main import ( "syscall" ) const LINUX_REBOOT_MAGIC1 uintptr = 0xfee1dead const LINUX_REBOOT_MAGIC2 uintptr = 672274793 const LINUX_REBOOT_CMD_RESTART uintptr = 0x1234567 func main() { syscall.Syscall(syscall.SYS_REBOOT, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART) } ``` - `archive/tar` 和 `/zip-compress`:壓縮(解壓縮)文件功能。 - `fmt`-`io`-`bufio`-`path/filepath`-`flag`: - `fmt`: 提供了格式化輸入輸出功能。 - `io`: 提供了基本輸入輸出功能,大多數是圍繞系統功能的封裝。 - `bufio`: 緩沖輸入輸出功能的封裝。 - `path/filepath`: 用來操作在當前系統中的目標文件名路徑。 - `flag`: 對命令行參數的操作。 - `strings`-`strconv`-`unicode`-`regexp`-`bytes`: - `strings`: 提供對字符串的操作。 - `strconv`: 提供將字符串轉換為基礎類型的功能。 - `unicode`: 為 unicode 型的字符串提供特殊的功能。 - `regexp`: 正則表達式功能。 - `bytes`: 提供對字符型分片的操作。 - `index/suffixarray`: 子字符串快速查詢。 - `math`-`math/cmath`-`math/big`-`math/rand`-`sort`: - `math`: 基本的數學函數。 - `math/cmath`: 對復數的操作。 - `math/rand`: 偽隨機數生成。 - `sort`: 為數組排序和自定義集合。 - `math/big`: 大數的實現和計算。 - `container`-`/list-ring-heap`: 實現對集合的操作。 - `list`: 雙鏈表。 下面代碼演示了如何遍歷一個鏈表(當 l 是 `*List`): ``` for e := l.Front(); e != nil; e = e.Next() { //do something with e.Value } ``` ``` - `ring`: 環形鏈表。 ``` - `time`-`log`: - `time`: 日期和時間的基本操作。 - `log`: 記錄程序運行時產生的日志,我們將在后面的章節使用它。 - `encoding/json`-`encoding/xml`-`text/template`: - `encoding/json`: 讀取并解碼和寫入并編碼 JSON 數據。 - `encoding/xml`:簡單的 XML1.0 解析器,有關 JSON 和 XML 的實例請查閱第 12.9/10 章節。 - `text/template`:生成像 HTML 一樣的數據與文本混合的數據驅動模板(參見第 15.7 節)。 - `net`-`net/http`-`html`:(參見第 15 章) - `net`: 網絡數據的基本操作。 - `http`: 提供了一個可擴展的 HTTP 服務器和基礎客戶端,解析 HTTP 請求和回復。 - `html`: HTML5 解析器。 - `runtime`: Go 程序運行時的交互操作,例如垃圾回收和協程創建。 - `reflect`: 實現通過程序運行時反射,讓程序操作任意類型的變量。 `exp` 包中有許多將被編譯為新包的實驗性的包。它們將成為獨立的包在下次穩定版本發布的時候。如果前一個版本已經存在了,它們將被作為過時的包被回收。然而 Go1.0 發布的時候并不包含過時或者實驗性的包。 **練習 9.1** 使用 `container/list` 包實現一個雙向鏈表,將 101、102 和 103 放入其中并打印出來。 **練習 9.2** 通過使用 `unsafe` 包中的方法來測試你電腦上一個整型變量占用多少個字節。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看