本文目錄一覽:
- 1、Golang入門到項目實戰 | golang介面和類型的關係
- 2、Golang入門到項目實戰 | golang並發變成之通道channel
- 3、Golang入門到項目實戰 | golang 函數
- 4、Golang入門到項目實戰 | 第一個golang應用
Golang入門到項目實戰 | golang介面和類型的關係
一個類型實現多個介面,例如:有一個Player介面可以播放音樂,有一個Video介面可以播放視頻,一個手機Mobile實現這兩個介面,既可以播放音樂,又可以播放視頻。
定義一個Player介面
定義一個Video介面
定義Mobile介面體
實現兩個介面
測試
運行結果
比如,一個寵物介面Pet,貓類型Cat和狗類型Dog都可以實現該介面,都可以把貓和狗當寵物類型對待,這在其他語言中叫多態。
定義一個Pet介面
定義一個Dog結構體
定義一個Cat結構體
實現介面
測試
運行結果
Golang入門到項目實戰 | golang並發變成之通道channel
Go提供了一種稱為通道的機制,用於在goroutine之間共享數據。當您作為goroutine執行並發活動時,需要在goroutine之間共享資源或數據,通道充當goroutine之間的管道(管道)並提供一種機制來保證同步交換。
根據數據交換的行為,有兩種類型的通道:無緩衝通道和緩衝通道。無緩衝通道用於執行goroutine之間的同步通信,而緩衝通道用於執行非同步通信。無緩衝通道保證在發送和接收發生的瞬間兩個goroutine之間的交換。緩衝通道沒有這樣的保證。
通道由make函數創建,該函數指定chan關鍵字和通道的元素類型。
這是創建無緩衝和緩衝通道的代碼塊:
語法
使用內置函數make創建無緩衝和緩衝通道。make的第一個參數需要關鍵字chan,然後是通道允許交換的數據類型。
這是將值發送到通道的代碼塊需要使用-運算符:
語法
一個包含5個值的緩衝區的字元串類型的goroutine1通道。然後我們通過通道發送字元串「Australia」。
這是從通道接收值的代碼塊:
語法
– 運算符附加到通道變數(goroutine1)的左側,以接收來自通道的值。
在無緩衝通道中,在接收到任何值之前沒有能力保存它。在這種類型的通道中,發送和接收goroutine在任何發送或接收操作完成之前的同一時刻都準備就緒。如果兩個goroutine沒有在同一時刻準備好,則通道會讓執行其各自發送或接收操作的goroutine首先等待。同步是通道上發送和接收之間交互的基礎。沒有另一個就不可能發生。
在緩衝通道中,有能力在接收到一個或多個值之前保存它們。在這種類型的通道中,不要強制goroutine在同一時刻準備好執行發送和接收。當發送和接收阻塞時也有不同的條件。只有當通道中沒有要接收的值時,接收才會阻塞。僅當沒有可用緩衝區來放置正在發送的值時,發送才會阻塞。
實例
運行結果
Golang入門到項目實戰 | golang 函數
函數的go語言中的一級公民,我們把所有的功能單元都定義在函數中,可以重複使用。函數包含函數的名稱、參數列表和返回值類型,這些構成了函數的簽名(signature)。
函數在使用之前必須先定義,可以調用函數來完成某個任務。函數可以重複調用,從而達到代碼重用。
go語言函數定義語法
語法解析:
go語言函數定義實例
定義一個求和函數
定義一個比較兩個數大小的函數
go語言函數調用
當我們要完成某個任務時,可以調用函數來完成。調用函數要傳遞參數,如何有返回值可以獲得返回值。
運行結果
Golang入門到項目實戰 | 第一個golang應用
1.創建一個文件夾,例如:golang入門到項目實戰
2.在golang入門到項目實戰文件夾中創建一個go文件,例如:test.go
3.在test.go中輸入如下內容:
4.編譯執行go run test.go
5.可僅選擇編譯執行go build test.go,則目錄下會多出個exe程序
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/198632.html