基礎型別,如byte、int、bool、float等;
復合型別,如陣列、結構體、指標等;
可以指向任意物件的型別(any型別);
值語義和引用語義;
物件導向,即所有具備物件導向特徵(比如成員方法)的型別;
介面
type integer int
func (a integer)
less(b integer) bool
go語言中的大多數型別都基於值語義,包括:
基本型別,如byte、int、bool、float32、float64和string等;
復合型別,如陣列(array)、結構體(struct)和指標(pointer)等。
go語言中型別的值語義表現得非常徹底。我們之所以這麼說,是因為陣列。
go語言中有4個型別比較特別,看起來像引用型別
陣列切片:指向陣列(array)的乙個區間。
map:極其常見的資料結構,提供鍵值查詢能力。
channel:執行體(goroutine)間的通訊設施。
介面(inte***ce):對一組滿足某個契約的型別的抽象。
所有的go語言型別(指標型別除外)都可以有自己的方法
type rect struct
func (r *rect) area() float64
rect1 := new(rect)
rect2 := &rect{}
rect3 := &rect
rect4 := &rect
type base struct
func (base *base) foo()
func (base *base) bar()
type foo struct
func (foo *foo) bar()
在「派生類」foo沒有改寫「基類」base的成員方法時,相應的方法就被「繼承」,例如在
上面的例子中,呼叫foo.foo()和呼叫foo.base.foo()效果一致。
go語言中符號的可訪問性是包一級的而不是型別一級的
在go語言中,只要兩個介面擁有相同的方法列表(次序不同不要緊),那麼它們就是等同的,可以相互賦值。
注意:介面查詢、型別查詢
物件導向程式設計(3)
封裝有兩方面的含義 1 將資料和行為包裝到類物件中,在方法內部對屬性進行操作,在類物件的外部呼叫方法。無需關心方法內部的具體實現細節,從而提高了複雜度。2 在類物件內部通過訪問控制把某些屬性和方法隱藏起來,不允許在類物件的外部直接訪問,而是在類物件的內部對外提供公開的介面方法以訪問隱藏的資訊。這樣,...
物件導向程式設計作業3
github鏈結 我選擇的是用c 實現 c語言實現三電梯過程 讀取乘客請求 asktime請求時間,askfloor請求樓層,askspace請求目的地 分析乘客請求,判斷其應乘坐哪號電梯 若相應電梯接到請求便開始執行 判斷電梯是否到達請求樓層或者請求目的地,若到達,電梯停靠,否則繼續響應請求 若處...
3 物件導向程式設計初步
如何開汽車 事務比較簡單,可以用線性的思維去解決 面向過程 物件導向 1.踩離合 駕駛員 2.掛擋 汽車 3.踩油門,放離合 駕駛員開汽車!4.開了 car.start 如何製造汽車 事物比較複雜使用簡單的線性思維無法解決 面向過程 物件導向 1.造車輪?車輪 2.造發動機?買橡膠到馬來西亞找到橡膠...