go的基礎介紹
go的基礎介紹 是我們接下來要介紹的內容,安裝好 go 的應用程式後,接下來要跟大家初步介紹一下 go 語言的特性讓大家對於 go 語言有一些初步的概念,了解一下 go 語言的設計的概念,所以接下來會開始。
go 是 OOP 嗎
筆者很習慣的比較程式語言是透過 OOP 或是 functional 這兩個種來區分程式語言的類別,而 go 是哪一類?筆者認為 go 是沒有繼承的 OOP。在以往多重繼承這個特性在 OOP 類別的程式語言中常常被人家所詬病,然而在 go 之中沒有繼承而是用組成(Composition)來取代。除了繼承之外其他 OOP 的概念如抽象、封裝、多形的概念都還保有在 go 內所以筆者認為 go 是 OOP。
go 的多形
剛剛提到 go 的 OOP 特性後接下來就要提一提 go 方法實作的特性, go 是不允許多載的,也就是 go 類別的方法不允許兩個以上相同名子的方法存在。原因是多載會讓開發的人員有搞混方法的機會,所以基於簡單的概念下 go 選擇讓開發的人員同一個類別之中一個名稱的方法只能做一件事情。
go 的類別
照字面上來講, go 沒有類別這定義,go 之中有一個跟類別很相近的定義就是struct
,相信熟悉C與C++的讀者們對於這個關鍵字應該不陌生,這就是在C語言之中近似類別的關鍵字,但是這個沒辦法在上面實作方法,因為他不是類別,不過在 go 不一樣,可以針對這個struct
定義他的方法,這部分之後會提到。
go 的介面
雖然 go 不能繼承,但是他還是保留介面這個做法,可以透過宣告介面來在編譯時期要求類別一定要實作對應的介面,這樣也可以在程式開發時相依介面而不相依類別,如此讓開發時專注在當下的方法的實作。
go 是強型別或弱型別
所謂強型別或是弱型別的差別是在於賦值時是否會在意變數的型別,強型別就是不允許變數賦予不同型別的值,例如 go
與 python
。
而弱型別則像 javascript
則可以任意賦值給變數。
go 的程式區塊及段落
go 的程式區塊是以 {}
來作為區域的區分,例如方法的區塊內是區域變數,只能在區域內使用。
go 的段落是以換行作為該行的結束,所以不同行的視為另一段語言。
結論
接著flask與svelte這是筆者的第三篇系列文章,希望對大家學習go有幫助,接下來會開始介紹 go的語法,在這之前有興趣的讀者們可以先看看go tour學習一下 go 語言。