go語言

5/34ページ

Go語言method詳解

前面兩章我們介紹了函式和struct,那你是否想過函式當作struct的欄位一樣來處理呢?今天我們就講解一下函式的另一種形態,帶有接收者的函式,我們稱為method method 現在假設有這麼一個場景,你定義了一個struct叫做長方形,你現在想要計算他的面積,那麼按照我們一般的思路應該會用下面的 […]

Go語言struct型別詳解

struct Go語言中,也和C或者其他語言一樣,我們可以宣告新的型別,作為其它型別的屬性或欄位的容器。例如,我們可以建立一個自定義型別person代表一個人的實體。這個實體擁有屬性:姓名和年齡。這樣的型別我們稱之struct。如下程式碼所示: 複製程式碼 程式碼如下: type person st […]

Go語言中的方法、介面和嵌入型別詳解

概述 在 Go 語言中,如果一個結構體和一個嵌入欄位同時實現了相同的介面會發生什麼呢?我們猜一下,可能有兩個問題: 1.編譯器會因為我們同時有兩個介面實現而報錯嗎? 2.如果編譯器接受這樣的定義,那麼當介面呼叫時編譯器要怎麼確定該使用哪個實現? 在寫了一些測試程式碼並認真深入的讀了一下標準之後,我發 […]

Go語言實現的一個簡單Web伺服器

Web是基於http協議的一個服務,Go語言裡面提供了一個完善的net/http包,通過http包可以很方便的就搭建起來一個可以執行的Web服務。同時使用這個包能很簡單地對Web的路由,靜態檔案,模版,cookie等資料進行設定和操作。 http包建立Web伺服器 複製程式碼 程式碼如下: pack […]

Go語言的方法接受者型別用值型別還是指標型別?

概述 很多人(特別是新手)在寫 Go 語言程式碼時經常會問一個問題,那就是一個方法的接受者型別到底應該是值型別還是指標型別呢,Go 的 wiki 上對這點做了很好的解釋,我來翻譯一下。 何時使用值型別 1.如果接受者是一個 map,func 或者 chan,使用值型別(因為它們本身就是引用型別)。 […]

Go語言併發模型的2種程式設計方案

概述 我一直在找一種好的方法來解釋 go 語言的併發模型: 不要通過共享記憶體來通訊,相反,應該通過通訊來共享記憶體 但是沒有發現一個好的解釋來滿足我下面的需求: 1.通過一個例子來說明最初的問題 2.提供一個共享記憶體的解決方案 3.提供一個通過通訊的解決方案 這篇文章我就從這三個方面來做出解釋。 […]