原创 單元測試快速入門

package main import ( “testing”//引入go的testing框架包 “encoding/json” “fmt” “io/ioutil” ) /* 單元測試-基本介紹 Go語言中自帶有一個輕量級的測試框

原创 協程配合管道的綜合案例

package main import ( “fmt” “time” ) /* 應用實例1 請完成goroutine和channel協同工作的案例,具體要求: 1)開啓一個writeData協程,向管道intChan中寫入50個整

原创 Sub-cabtest.go

package cal import ( “testing” “fmt” ) //編寫要給測試用例,去測試addUpper是否正確 func TestGetSub(t *testing.T){ //調用 res := getSub

原创 單元測試的引出

package main import “fmt” /* 這裏有一個函數,怎樣確認它運行的結果是正確的? 先看一個需求 在我們工作中,我們遇到這樣的情況,就是去確認一個函數,或者一個模塊的結果是否正確如: */ //一個被測試函數

原创 協程併發資源型競爭問題

package main import ( “sync” “time” “fmt” ) /* 不同goroutine之間如何通訊 1)全局變量加鎖同步 2)channel 使用全局變量加鎖同步改進程序 因爲沒有對全局變量m加鎖,因

原创 caltest

package cal import ( “testing” “fmt” ) //編寫要給測試用例,去測試addUpper是否正確 func TestAddUpper(t *testing.T){ //調用 res := addU

原创 smsProcess.go

package process2 import ( “encoding/json” “fmt” “net” ) type SmsProcess struct { //…[暫時不需字段] } //寫方法轉發消息 func(this

原创 管道基本介紹

package main import “fmt” /* 爲什麼需要channel 前面使用全局變量加鎖同步來解決goroutine的通訊,但不完美 1)主線程在等待所有goroutine全部完成的時間很難確定,我們這裏設置10秒

原创 main.go

package main import ( “fmt” “net” “encoding/binary” “encoding/json” “errors” “io” “debug/dwarf”//沒有引入message包 “time

原创 model-----error

package model import “errors” //根據業務邏輯需要,自定義一些錯誤。 var( ERROR_USER_NOTEXTSTS=errors.New(“用戶不存在”) ERROR_USER_EXISTS=e

原创 管道的細節和課堂練習

package main import “fmt” func main(){ //1)創建一個intChan,最多可以存放3個int,演示存3數據到intChan,然後在取出這三個int var intChan chan int

原创 管道阻塞機制

package main import ( “fmt” “time” ) /* 應用實例1 請完成goroutine和channel協同工作的案例,具體要求: 1)開啓一個writeData協程,向管道intChan中寫入50個整

原创 model------userDao

package model import ( “encoding/json” “fmt” ) //我們在服務器啓動後,就初始化一個userDao實例, //把它做成全局的變量。在需要和redis操作時,就直接使用即可。 var(

原创 管道的關閉和遍歷

package main import “fmt” /* 讀寫channel課堂練習 說明:請完成如下案例 1)創建一個Person結構體[Name,Age,Address] 2)使用rand方法配合隨機創建10個Person實例

原创 model------user.go

package model type User struct { //確定字段信息 //爲了序列化和反序列化成功,我們必須保證 //用戶信息的json字符串的key和結構體的字段對應的tag名字一致!!! UserId intjs