//cs-a.ecimg.tw/items/DJAA2VA900BGU7J/000001_1623817334.jpg;
商品編號:DJAA2V-A900BGU7J

完全自學!Go 語言(Golang)實戰聖經

$695
$880
  • P幣

    全盈+PAY單筆消費滿1200回饋80P幣(每帳號限乙次,限量5000名)

  • 登記送

    【7-11】單筆滿$350純取貨/取貨付款訂單登記送韓風拌拌炸雞兌換券乙張(限量)

  • 登記送

    【第四波】書店/閱讀器/寵物指定品單筆滿$1,500登記送100P幣(使用效期30/限量)

付款方式
出貨
  • PChome 倉庫出貨,24小時到貨
配送
宅配滿$490免運,超取滿$350免運
  • 宅配到府(本島/低溫)
    滿$699免運
  • 宅配到府(本島/常溫)
    滿$490免運
  • 超商取貨(常溫)
    滿$350免運
  • 超商取貨(低溫)
    滿$699免運
  • i郵箱(常溫)
    滿$290免運
商品詳情
作者:
譯者:
林班侯、施威銘研究室(編譯)
ISBN:
9789863126706
出版社:
出版日期:
2021/07/01
  • 內文簡介

  • <內容簡介>

    你從未見過如此完整的 Go 語言中文教材!

    Go 語言
    ? 2016 年被 TIOBE 選為年度最佳程式語言
    ? 2020 年 Stack Overflow調查為 『全球第三高薪開發者職業』
    ? 2020 年超越 Python 成為『職業開發者最想學習語言』
    ? 已被 Google、Dropbox、Twitch、Uber 等企業採用,也用來打造 Docker、Kubernetes 等熱門開源工具

    Go 語言,或者 『Golang』,是近年來成長最快速的新世代程式語言之一。它語法接近 C 及 Java,但藉由更精簡的語法來縮短開發時程、使專案能輕易擴張規模,並具備安全的靜態型別、記憶體垃圾回收、跨平台編譯能力等。連 Python 之父 Guido van Rossum 都說, Go『是所有新語言中最具 Python 風格的』...

    最重要地,Go 語言擁有豐富程度堪比 Python 的內建函式庫,無須下載額外套件,就能用少於 10 行程式寫出簡易 HTTP 伺服端應用!甚至,它獨特的 Goroutine 讓你能用簡單得稱奇的方式啟用非同步運算,超輕鬆解鎖現代多核心電腦的運算威力。

    想跨足 Go 語言,讓履歷及薪水更上一層樓,卻依舊找不到合適的入門書嗎?本書以豐富的範例及練習,帶領讀者實地操作 Go 語言的基礎及相關特色,讀完就能立馬投入實戰。替自己的職涯超前佈署,快速增加一技之長,別再只能對現況『滾動式修正』啦!


    ★本書特色:

    作者群擁有豐富的 Go 語言開發經驗,精心設計了「範例」、「練習」和「延伸習題」,讓讀者從實作中親自體會到 Go 語言的威力。小編也在書中適當加入「編註」與「補充」,以幫助理解及補充必要知識,更增添本書的可讀性。

    你將在本書讀到:

    ? Go 語言的型別、函式、結構與介面
    ? 模組管理和單元測試
    ? JSON 資料、檔案、資料庫操作
    ? HTTP 客戶端/伺服器應用和加密
    ? 非同步運算
    ? 附全書 258 個範例/練習程式及 36 個延伸習題檔案下載 (使用 Go 1.16+ )


    <作者簡介>

    Delio D'Anna
    現任 Cognitiv+ 的機器學習工程師, 專長為分散式系統架構, 有三年 Go 語言開發經驗。

    Andrew Hayes
    現任 CI/CD 平台 Harness 主管工程師, 有三年 Go 語言開發資歷,工作過的產業類型包括儲存設備、網路、DevOps 和雲端。

    Sam Hennessy
    從 2015 年起轉為全職 Go 語言工程師, 替新創企業、政府機構和大企業工作過, 也擔任包括 Go 語言在內的講師。現任日本 WealthPark Co., Ltd. 不動產公司的後端經理。

    Jeremy Leasor
    現任資安公司 Aronis SCS 的 Go 語言工程師, 擁有超過 20 年 IT 資歷, 包括 4 年以上的 Go 語言經驗, 發展安全性與資料庫方面的應用。

    Gobin Sougrakpam
    從系統整合工程師起家, 目前是 Go 程式設計師, 替 VMWare 和 AMS 等平台建置自動化方案。現任資訊服務管理公司 ServiceNow 資深工程師。

    D?niel Erno Szab?
    現任水電管理企業 Itron, Inc. 的 DevOps 工程師, 是個 IT 迷, 熱愛 Go、Python、Ruby 和 C# 等多種語言。


    ★目錄:

    ? 閱讀本書前的準備

    本書的表達習慣
    安裝 Go 語言
    安裝 Visual Studio Code 編輯器
    建立和執行專案
    The Go Playground
    本書執行專案的慣例
    從 VS Code 執行執行 Go 程式
    下載本書附錄、範例程式並開啟工作區

    ? Chapter 1 變數與算符

    1-1 前言
    1-1-1 Go 語言簡介
    1-1-2 Go 語言的模樣
    1-2 宣告變數 (variables)
    1-2-1 用 var 宣告變數
    1-2-2 用 var 一次宣告多個變數
    1-2-3 用 var 宣告變數時省略型別或賦值
    1-2-4 推斷型別發生問題的時候
    1-2-5 短變數宣告
    1-2-6 以短變數宣告建立多重變數
    1-2-7 在單行程式內用 var 宣告多重變數
    1-2-8 非英語的變數名稱
    1-3 更改變數值
    1-3-1 更改單一變數的值
    1-3-2 一次更改多個變數值
    1-4 算符 (operators)
    1-4-1 算符基礎
    1-4-2 算符簡寫法
    1-4-3 值的比較
    1-5 零值 (zero values)
    1-6 值 vs. 指標 (pointers)
    1-6-1 了解指標
    1-6-2 取得指標
    1-6-3 從指標取得值
    1-6-4 採用指標的函式設計
    1-7 常數 (constants)
    1-8 列舉 (enums)
    1-9 變數作用範圍 (Scope)
    1-10 本章回顧

    ? Chapter 2 條件判斷與迴圈

    2-1 前言
    2-2 if 敘述
    2-2-1 if 敘述基礎
    2-2-2 else 敘述
    2-2-3 else if 敘述
    2-2-4 if 敘述的起始賦值
    2-3 switch 敘述
    2-3-1 switch 敘述基礎
    2-3-2 switch 的不同用法
    2-4 迴圈
    2-4-1 for 迴圈基礎
    2-4-2 for i 迴圈
    2-4-3 for range 迴圈
    2-4-4 break 和 continue 敘述
    2-5 本章回顧

    ? Chapter 3 核心型別

    3-1 前言
    3-2 布林值:true/false
    3-3 數字
    3-3-1 整數
    3-3-2 浮點數
    3-3-3 溢位和越界繞回
    3-3-4 大數值
    3-3-5 位元組 (Byte)
    3-4 字串 (String)
    3-4-1 字串與字串常值
    3-4-2 Rune
    3-5 nil 值
    3-6 本章回顧

    ? Chapter 4 複合型別

    4-1 前言
    4-2 集合型別 (collection types)
    4-3 陣列 (array)
    4-3-1 定義一個陣列
    4-3-2 陣列的比較
    4-3-3 透過索引鍵賦值
    4-3-4 讀取陣列元素值
    4-3-5 寫入值到陣列
    4-3-6 走訪一個陣列
    4-4 切片 (slice)
    4-4-1 使用切片
    4-4-2 為切片附加多重元素
    4-4-3 從切片和陣列建立新的切片
    4-4-4 了解切片的內部運作
    4-4-5 切片的隱藏陣列置換
    4-5 映射表 (map)
    4-5-1 map 的基礎
    4-5-2 從 map 讀取元素
    4-5-3 從 map 刪除元素
    4-6 簡易自訂型別 (custom types)
    4-7 結構 (struct)
    4-7-1 結構的定義
    4-7-2 結構的相互比較
    4-7-3 內嵌結構
    4-7-4 替自訂型別加上方法 (method)
    4-8 介面與型別檢查
    4-8-1 型別轉換
    4-8-2 型別斷言與 interface{} 空介面
    4-8-3 型別 switch
    4-9 本章回顧

    ? Chapter 5 函式

    5-1 前言
    5-2 函式
    5-2-1 函式的宣告和組成
    5-2-2 函式參數
    5-2-3 函式傳回值
    5-2-4 Naked Returns
    5-3 參數不定函式
    5-4 匿名函式與閉包
    5-4-1 宣告匿名函式
    5-4-2 建立閉包
    5-5 以函式為型別的參數
    5-5-1 自訂函式型別
    5-5-2 使用自訂函式型別的參數
    5-5-3 用自訂函式型別作為傳回值
    5-6 defer
    5-6-1 用 defer 延後函式執行
    5-6-2 多重 defer 的執行順序
    5-6-3 defer 對變數值的副作用
    5-7 摘要

    ? Chapter 6 錯誤處理

    6-1 前言
    6-2 程式錯誤的類型
    6-2-1 語法錯誤
    6-2-2 執行期間錯誤
    6-2-3 邏輯錯誤/語意錯誤
    6-3 其它程式語言的錯誤處理方式
    6-4 error 介面
    6-4-1 Go 語言的 error 值
    6-4-2 error 型別定義
    6-4-3 建立 error 值
    6-4-4 (小編補充) 使用 fmt.Errorf() 建立 error 值
    6-5 panic
    6-5-1 何謂 panic?
    6-5-2 panic() 函式
    6-6 recover (復原)
    6-7 處理 error 與 panic 的指導方針
    6-8 本章回顧.6-31

    ? Chapter 7 介面

    7-1 前言
    7-2 介面 (interface)
    7-2-1 認識介面
    7-2-2 定義介面型別
    7-2-3 實作一個介面
    7-2-4 隱性介面實作的優點
    7-3 鴨子定型和多型
    7-3-1 鴨子定型
    7-3-2 多型
    7-4 在函式中活用介面
    7-4-1 以介面為參數的函式
    7-4-2 以介面為傳回值的函式
    7-4-3 空介面 interfac{}
    7-4-4 型別斷言與型別 switch
    7-5 本章回顧

    ? Chapter 8 套件

    8-1 前言
    8-1-1 何謂套件
    8-1-2 運用套件的好處
    8-2 使用套件
    8-2-1 何謂套件
    8-2-2 套件的命名
    8-2-3 套件的宣告
    8-2-4 將套件的功能匯出
    8-3 管理套件
    8-3-1 GOROOT
    8-3-2 GOPATH
    8-3-4 Go Modules ★ Go 1.16+ 的預設套件管理方法
    8-3-5 下載第三方模組或套件
    8-4 套件的呼叫與執行
    8-4-1 套件別名
    8-4-2 init() 函式
    8-5 本章回顧

    ? Chapter 9 程式除錯:格式化訊息、日誌與單元測試

    9-1 前言
    9-1-1 臭蟲的發生原因
    9-1-2 除錯原則
    9-2 以 fmt 套件做格式化輸出
    9-2-1 fmt 套件
    9-2-2 fmt 的格式化輸出
    9-2-3 印出浮點數的進階格式化
    9-2-4 用 strconv.FormatFloat() 格式化浮點數
    9-3 使用 log 提供追蹤訊息/日誌
    9-3-1 印出追蹤訊息
    9-3-2 用 log 套件輸出日誌
    9-3-3 建立自訂 logger 物件
    9-4 撰寫單元測試
    9-5 本章回顧

    ? Chapter 10 時間處理

    10-1 前言
    10-2 建立時間資料
    10-2-1 取得系統時間
    10-2-2 取得時間資料中的特定項目
    10-3 時間值的格式化
    10-3-1 將時間轉成指定格式的字串
    10-3-2 將特定格式的時間字串轉成時間值
    10-4 時間值的管理
    10-4-1 建立和增減時間值
    10-4-2 設定時區來取得新時間值
    10-5 時間值的比較與時間長度處理
    10-5-1 比較時間
    10-5-2 用時間長度來改變時間
    10-5-3 測量時間長度
    10-6 本章回顧

    ? Chapter 11 編碼/解碼 JSON 資料

    11-1 前言
    11-2 解碼 JSON 為 Go 結構
    11-2-1 Unmarshal()
    11-2-2 加上結構 JSON 標籤
    11-2-3 解碼 JSON 到複合結構
    11-3 將 Go 結構編碼為 JSON
    11-3-1 Marshal()
    11-3-2 將有多重欄位的結構轉為 JSON
    11-3-3 略過欄位
    11-3-4 有排版的 JSON 編碼結果
    11-4 使用 Decoder/Encoder 處理 JSON 資料
    11-5 處理內容未知的 JSON 資料
    11-5-1 將 JSON 格式解碼成 map
    11-5-2 將 map 編碼成 JSON 格式
    11-6 gob:Go 自有的編碼格式
    11-7 本章回顧

    ? Chapter 12 系統與檔案

    12-1 前言
    12-2 命令列旗標與其引數
    12-3 系統中斷訊號
    12-4 檔案存取權限
    12-5 建立與寫入檔案
    12-5-1 用 os 套件新建檔案
    12-5-2 對檔案寫入字串
    12-5-3 一次完成建立檔案及寫入
    12-5-4 檢查檔案是否存在
    12-5-5 一次讀取整個檔案內容
    12-5-6 一次讀取檔案中的一行字串
    12-5-7 刪除檔案
    12-6 最完整的檔案開啟與建立功能:os.OpenFile()
    12-7 處理 CSV 格式檔案
    12-7-1 走訪 CSV 檔內容
    12-7-2 讀取每行資料各欄位的值
    12-6 本章回顧

    ? Chapter SQL 13 與資料庫

    13-1 前言
    13-2 安裝 MySQL 資料庫
    13-2-1 安裝 MySQL Server
    13-2-2 新增資料庫使用者
    13-2-3 建立一個 MySQL 資料庫
    13-2-4 下載 Go 語言的 MySQL 驅動程式
    13-3 以 Go 語言連接資料庫
    13-4 建立、清空和移除資料表
    13-5 插入資料
    13-6 查詢資料
    13-6-1 查詢並印出整個資料表內容
    13-6-2 查詢符合條件的資料
    13-7 更新既有資料
    13-8 練習:FizzBuzz 統計表
    13-9 本章回顧

    ? Chapter 14 使用 Go 的 HTTP 客戶端

    14-1 前言
    14-2 Go 語言的 HTTP 客戶端
    14-3 對伺服器傳送 GET 請求
    14-3-1 使用 http.Get() 發送 GET 請求
    14-3-2 取得並解析伺服器的 JSON 資料
    14-4 用 POST 請求傳送資料給伺服器
    14-4-1 送出 POST 請求並接收回應
    14-4-2 用 POST 請求上傳檔案
    14-5 在客戶端使用自訂標頭做為請求選項
    14-6 本章回顧

    ? Chapter 15 建立 HTTP 伺服器程式

    15-1 前言
    15-2 打造最基本的伺服器
    15-2-1 使用 HTTP 請求處理器 (handler)
    15-2-2 簡單的 routing (路由) 控制
    15-2-3 修改程式來應付多重路徑請求
    15-3 解讀網址參數來動態產生網頁
    15-4 使用模板產生網頁
    15-5 使用靜態網頁資源
    15-5-1 讀取靜態 HTML 網頁
    15-5-2 在伺服器上提供多重靜態資源
    15-5-3 使用模板檔案產生動態網頁
    15-6 用表單和 POST 方法更新伺服器資料
    15-7 簡易 RESTful API:交換 JSON 資料
    15-8 本章回顧

    ? Chapter 16 並行性運算

    16-1 前言
    16-2 使用 Go 語言的並行性運算
    16-2-1 Goroutine
    16-2-2 WaitGroup
    16-3 解決記憶體資源競爭 (race condition)
    16-3-1 原子操作 (atomic operation)
    16-3-2 互斥鎖 (mutex)
    16-4 通道 (channel)
    16-4-1 使用通道傳遞訊息
    16-4-2 從通道讀取多重來源的資料
    16-5 並行性運算的流程控制
    16-5-1 通道緩衝區與通道關閉:close()
    16-5-2 使用通道訊息來等待 Goroutine 結束
    16-5-3 使用通道傳送取消信號
    16-5-4 使用函式來產生通道及 Goroutine
    16-5-5 限制通道的收發方向
    16-5-6 將結構方法當成 Goroutine
    16-6 context 套件
    16-7 本章回顧

    ? Chapter 17 運用 Go 語言工具

    17-1 前言
    17-2 go build 工具:編譯可執行檔
    17-2-1 使用 go build
    17-2-2 編譯條件:選擇要編譯的檔案
    ★ 如何針對跨平台編譯
    17.3 go run 工具:執行程式
    17-3 gofmt 工具:程式碼格式化
    ★ 小編補充:Go 語言伺服器 gopls
    17-4 go vet:程式靜態分析工具
    ★ 小編補充:Go 語言風格檢查工具:golint
    17-5 go doc 工具:產生文件
    17-6 go get 工具;下載模組或套件
    17-7 本章回顧

    ? Chapter 18 加密安全

    18-1 前言
    18-2 雜湊函式 ★ 使用 MD5 和 SHA2/SHA3
    18-3 加密法
    18-3-1 對稱式加密法 ★ 使用 AES + GCM
    18-3-2 非對稱式加密法 ★ 使用 RSA-OAEP
    18-4 數位簽章 ★ 使用 Ed25519
    18-5 HTTPS/TLS 與 X.509 憑證
    ★ 給客戶端和伺服器使用自簽署憑證
    ★ 改用 ECDSA 簽章演算法

    18-6 本章回顧

    ? Chapter 19 Go 語言的特殊套件:reflect 與 unsafe

    19-1 反射 (reflection)
    19-1-1 TypeOf() 和 ValueOf()
    19-1-2 取得指標值和修改之
    19-1-3 取得結構的欄位名稱、型別與其值
    19-1-4 練習:用 reflect 取代介面斷言
    19-1-5 DeepEqual
    19-2 unsafe 套件
    19-2-1 unsafe.Pointer 指標
    19-2-2 以 uintptr 搭配 unsafe 存取記憶體位
購物須知
寄送時間
全台灣24h到貨,遲到提供100元現金積點。全年無休,週末假日照常出貨。例外說明
送貨方式
透過宅配送達。除網頁另有特別標示外,均為常溫配送。
消費者訂購之商品若經配送兩次無法送達,再經本公司以電話與Email均無法聯繫逾三天者,本公司將取消該筆訂單,並且全額退款。
送貨範圍
限台灣本島與離島地區註,部分離島地區包括連江馬祖、綠島、蘭嶼、琉球鄉…等貨件,將送至到岸船公司碼頭,需請收貨人自行至碼頭取貨。注意!收件地址請勿為郵政信箱。
註:離島地區不配送安裝商品、手機門號商品、超大材商品及四機商品。
售後服務
缺掉頁更換新品
執照證號&登錄字號
本公司食品業者登錄字號A-116606102-00000-0
關於退貨
  • PChome24h購物的消費者,都可以依照消費者保護法的規定,享有商品貨到次日起七天猶豫期的權益。(請留意猶豫期非試用期!!)您所退回的商品必須回復原狀(復原至商品到貨時的原始狀態並且保持完整包裝,包括商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性)。商品一經拆封/啟用保固,將使商品價值減損,您理解本公司將依法收取回復原狀必要之費用(若無法復原,費用將以商品價值損失計算),請先確認商品正確、外觀可接受再行使用,以免影響您的權利,祝您購物順心。
  • 如果您所購買商品是下列特殊商品,請留意下述退貨注意事項:
    1. 易於腐敗之商品、保存期限較短之商品、客製化商品、報紙、期刊、雜誌,依據消費者保護法之規定,於收受商品後將無法享有七天猶豫期之權益且不得辦理退貨。
    2. 影音商品、電腦軟體或個人衛生用品等一經拆封即無法回復原狀的商品,在您還不確定是否要辦理退貨以前,請勿拆封,一經拆封則依消費者保護法之規定,無法享有七天猶豫期之權益且不得辦理退貨。
    3. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,一經您事先同意後始提供者,依消費者保護法之規定,您將無法享有七天猶豫期之權益且不得辦理退貨。
    4. 組合商品於辦理退貨時,應將組合銷售商品一同退貨,若有遺失、毀損或缺件,PChome將可能要求您依照損毀程度負擔回復原狀必要之費用。
  • 若您需辦理退貨,請利用顧客中心「查訂單」或「退訂/退款查詢」的「退訂/退貨」功能填寫申請,我們將於接獲申請之次日起1個工作天內檢視您的退貨要求,檢視完畢後將以E-mail回覆通知您,並將委託本公司指定之宅配公司,在5個工作天內透過電話與您連絡前往取回退貨商品。請您保持電話暢通,並備妥原商品及所有包裝及附件,以便於交付予本公司指定之宅配公司取回(宅配公司僅負責收件,退貨商品仍由特約廠商進行驗收),宅配公司取件後會提供簽收單據給您,請注意留存。
  • 退回商品時,請以本公司或特約廠商寄送商品給您時所使用的外包裝(紙箱或包裝袋),原封包裝後交付給前來取件的宅配公司;如果本公司或特約廠商寄送商品給您時所使用的外包裝(紙箱或包裝袋)已經遺失,請您在商品原廠外盒之外,再以其他適當的包裝盒進行包裝,切勿任由宅配單直接粘貼在商品原廠外盒上或書寫文字。
  • 若因您要求退貨或換貨、或因本公司無法接受您全部或部分之訂單、或因契約解除或失其效力,而需為您辦理退款事宜時,您同意本公司得代您處理發票或折讓單等相關法令所要求之單據,以利本公司為您辦理退款。
  • 本公司收到您所提出的申請後,若經確認無誤,將依消費者保護法之相關規定,返還您已支付之對價(含信用卡交易),退款日當天會再發送E-mail通知函給您。