Go語言入門經典

周家安

  • 出版商: 清華大學
  • 出版日期: 2021-03-01
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 409
  • 裝訂: 平裝
  • ISBN: 7302568499
  • ISBN-13: 9787302568490

立即出貨

  • Go語言入門經典-preview-1
  • Go語言入門經典-preview-2
  • Go語言入門經典-preview-3
Go語言入門經典-preview-1

相關主題

商品描述

Go(Golang)語言在語法上與C、C++ 語言相似,是一門開源的編程語言,可用於編寫簡單的、實用的應 用程序。Go語言支持內存管理和垃圾回收(GC)機制,使用Go協程可以輕松實現並發計算。本書通過通 俗易懂的文字,著重講解Go語言編程的基礎知識,同時配有豐富的示例。 本書主要內容包括: 開發環境配置及語法基礎,代碼包(Package),內置運算符與數據類型,代碼流程 控制,函數式、接口與結構體,數組、切片與映射類型,反射技術,管理命令行參數,I/O、數據壓縮及文件操 作,加密與解密,網絡編程,Go協程。 作為入門教程,本書適合對編程感興趣並且希望通過自學來掌握Go語言基礎知識的讀者使用,或者 有其他編程語言基礎的讀者閱讀參考。同時,本書也可作為高等院校電腦及相關專業的教材。

作者簡介

周家安,微軟有價值專家(MVP)、編程愛好者,樂於分享各種編程技巧。
擅長Web服務開發、Windows系統開發、Python語言編程。
著有《.NETCore實戰——手把手教你掌握380個精彩案例》《Python實戰指南——手把手教你掌握300個精彩案例》等原創暢銷圖書。

目錄大綱

第1章準備工作
1.1安裝Go語言編譯器
1.2配置環境變量
1.3驗證Go語言編譯器的工作狀態

第2章語法基礎
2.1代碼結構
2.2main包與main函數
2.3Go語句
2.4代碼塊
2.5註釋
2.6使用Go語言編譯器

第3章運算符
3.1操作數
3.2算術運算符
3.2.1四則運算符
3.2.2取餘運算符
3.2.3如何實現指數運算
3.2.4自增與自減運算符
3.3比較運算符
3.4邏輯運算符
3.5位運算符
3.5.1按位與
3.5.2按位或
3.5.3取反
3.5.4位移
3.5.5按位異或
3.5.6清除標誌位
3.6成員運算符
3.7取地址運算符
3.8複合運算符
3.9運算符的優先級

第4章程序包管理
4.1package語句
4.2程序包的目錄結構
4.3導入語句
4.4初始化函數
4.5模塊
4.5.1go.mod文件的基本結構
4.5.2創建go.mod文件
4.5.3編輯go.mod文件
4.5.4使用本地模塊
4.6成員的可訪問性

第5章變量與常量
5.1變量的初始化
5.2組合賦值
5.3匿名變量
5.4常量
5.5批量聲明
5.6變量的作用域
5.7變量的默認值

第6章基礎類型
6.1字符與字符串
6.1.1rune類型
6.1.2string類型
6.2數值類型
6.2.1示例: 獲取數值類型占用的內存大小
6.2.2整數常量的表示方式
6.2.3科學記數法
6.2.4複數
6.3日期與時間
6.3.1Month類型
6.3.2Weekday類型
6.3.3Duration類型
6.3.4Time類型
6.3.5Sleep函數
6.3.6Timer類型
6.4指針
6.4.1何時使用指針類型
6.4.2new函數
6.5iota常量

第7章函數
7.1函數的定義
7.2調用函數
7.3return語句
7.4多個返回值
7.5可變個數的參數
7.6匿名函數
7.7將函數作為參數傳遞

第8章流程控制
8.1順序執行
8.2if語句
8.3switch語句
8.3.1基於表達式構建的switch語句
8.3.2基於類型構建的switch語句
8.3.3fallthrough語句
8.4for語句
8.4.1僅帶條件子句的for語句
8.4.2帶三個子句的for語句
8.4.3枚舉集合元素語句
8.4.4continue與break語句
8.5代碼跳轉
8.5.1代碼標籤與goto語句
8.5.2break、continue語句與代碼跳轉

第9章接口與結構體
9.1自定義類型
9.2結構體
9.2.1結構體的定義
9.2.2結構體的實例化
9.2.3方法
9.3接口
9.3.1接口的定義
9.3.2接口的實現
9.3.3空接口——interface{}
9.3.4接口與函數
9.4類型嵌套
9.5類型斷言

第10章數組與切片
10.1數組
10.1.1數組的初始化
10.1.2訪問數組元素
10.1.3*[n]T與[n]*T的區別
10.1.4多維數組
10.2切片
10.2.1創建切片實例
10.2.2添加和刪除元素

第11章映射與鍊錶
11.1映射
11.1.1映射對象的初始化
11.1.2訪問映射對象的元素
11.1.3檢查key的存在性
11.2雙向鍊錶
11.2.1與雙向鍊錶有關的API
11.2.2創建鍊錶實例
11.2.3添加和刪除元素
11.2.4移動元素
11.2.5枚舉鍊錶元素
11.3環形鍊錶
11.3.1與環形鍊錶有關的API
11.3.2使用環形鍊錶
11.3.3滾動環形鍊錶
11.3.4鏈接兩個環形鍊錶

第12章反射
12.1關鍵API
12.2獲取類型信息
12.2.1類型分辨
12.2.2枚舉結構體類型的方法列表
12.2.3枚舉結構體類型的字段列表
12.2.4查找嵌套結構體的字段成員
12.2.5獲取函數的參數信息
12.2.6獲取通道類型的信息
12.2.7判斷類型是否實現了某個接口
12.3Value與對象的值
12.3.1修改對象的值
12.3.2讀寫結構體實例的字段
12.3.3更新數組/切片的元素
12.3.4調用函數
12.3.5調用方法
12.3.6讀寫映射類型的元素
12.4動態構建類型
12.4.1New函數
12.4.2創建數組類型
12.4.3創建結構體類型
12.4.4動態創建和調用函數
12.4.5生成通用函數體
12.5結構體的Tag

第13章字符串處理
13.1打印文本
13.2格式化輸出
13.2.1格式化整數值
13.2.2格式化浮點數值
13.2.3格式化字符串
13.2.4格式化布爾類型的值
13.2.5%T與%v格式控制符
13.2.6輸出包含前綴的整數值
13.2.7設置輸出內容的寬度
13.2.8控制浮點數的精度
13.2.9參數索引
13.2.10通過參數來控製文本的寬度和精度
13.3讀取輸入文本
13.3.1讀取鍵盤輸入的內容
13.3.2從文件中讀入文本
13.3.3以特定的格式讀取文本
13.4實現Stringer接口
13.5連接字符串
13.6替換字符串
13.7拆分字符串
13.8查找子字符串
13.8.1查找前綴與後綴
13.8.2查找子字符串的位置
13.9修剪字符串
13.9.1去除前綴和後綴
13.9.2去除字符串首尾的空格
13.9.3修剪指定的字符
13.10重複字符串
13.11字符串與數值之間的轉換
13.12切換大小寫
13.13使用Builder構建字符串

第14章常用數學函數
14.1求絕對值
14.2最大值與最小值
14.3三角函數與反三角函數
14.4冪運算
14.5開平方/立方根
14.6大型數值
14.6.1大型整數值之間的運算
14.6.2階乘運算
14.6.3使用大型浮點數值
14.7隨機數
14.7.1生成隨機浮點數
14.7.2生成隨機整數
14.7.3設置隨機數種子
14.7.4生成隨機全排列
14.7.5“洗牌”程序
14.7.6生成隨機字節序列

第15章排序
15.1基本排序函數
15.2實現遞減排序
15.3按字符串的長度排序
15.4Interface接口

第16章輸入與輸出
16.1簡單的內存緩衝區
16.2與輸入/輸出有關的接口類型
16.2.1實現讀寫功能
16.2.2嵌套封裝
16.3Buffer類型
16.4Copy函數
16.5MultiReader函數和MultiWriter函數
16.6SectionReader

第17章文件與目錄
17.1文件操作
17.1.1Create函數與Open函數
17.1.2重命名文件
17.1.3獲取文件信息
17.1.4OpenFile函數
17.2創建和刪除目錄
17.3硬鏈接與符號鏈接
17.3.1硬鏈接
17.3.2符號鏈接
17.4WriteFile函數與ReadFile函數
17.5臨時文件
17.6更改程序的工作目錄

第18章加密與解密
18.1Base64的編碼與解碼
18.1.1內置Base64編碼方案
18.1.2基於流的編碼與解碼
18.1.3自定義字符映射表
18.2DES與AES算法
18.2.1Block接口
18.2.2BlockMode模式
18.2.3基於流的加密與解密
18.3哈希算法
18.3.1hash.Hash接口
18.3.2使用crypto子包中的哈希API
18.3.3HMAC算法
18.4RSA算法
18.4.1生成密鑰
18.4.2加密和解密
18.4.3存儲密鑰
18.5PEM編碼
18.5.1編碼與解碼
18.5.2解碼後的保留數據
18.5.3消息頭

第19章命令行參數
19.1os.Args變量
19.2命令行參數分析API——flag包
19.2.1命令行參數與變量的綁定
19.2.2Value接口

第20章數據壓縮
20.1標準庫對壓縮算法的支持
20.2Gzip壓縮算法
20.2.1Gzip基本用法
20.2.2壓縮多個文件
20.2.3解壓多個文件
20.3DEFLATE算法
20.4自定義的索引字典
20.5Zip文檔
20.5.1從Zip文檔中讀取文件
20.5.2在內存中讀寫Zip文檔
20.5.3註冊壓縮算法
20.6Tar文檔

第21章協程
21.1啟動Go協程
21.2通道
21.2.1實例化通道
21.2.2數據緩衝
21.2.3單向通道
21.2.4通道與select語句
21.3互斥鎖
21.4WaitGroup類型

第22章網絡編程
22.1枚舉本地計算機上的網絡接口
22.2Socket通信
22.2.1TCP示例: 文件傳輸
22.2.2UDP示例: 文本傳輸
22.3HTTP客戶端
22.3.1發送GET與POST請求
22.3.2發送自定義HTTP頭
22.4HTTP服務器
22.4.1創建HTTP服務器
22.4.2實現Handler接口
22.4.3ServeMux類型
22.4.4封裝函數
22.4.5讀取URL參數
22.4.6獲取客戶端提交的表單數據
22.4.7讀取客戶端上傳的文件
22.5CGI編程
22.5.1準備工作
22.5.2示例: 一個簡單的CGI程序
22.5.3使用cgi包
22.5.4在子進程中獲取Request對象

附錄A常用API與程序包對照表
附錄BGo語言代碼編輯工具使用說明