go 語言 基礎知識點三

2021-09-30 16:46:35 字數 4074 閱讀 6223

sql.open()函式用來開啟乙個註冊過的資料庫驅動,go-mysql-driver中註冊了mysql這 個資料庫驅動,第二個引數是dns(data source name),它是go-mysql-driver定義的 一些資料庫鏈結和配置資訊。它支援如下格式:

res, err := stmt.exec("zhangsan", "技術部", "2016-12-09")

}

刪除資料    

stmt, err = db.prepare("delete from user_info where uid=?")

res, err = stmt.exec(id)

redis驅動

/*結尾buf[0:numofbytes]的原因是:numofbytes是指接收的位元組數 如果只用string(buf)

可能會導致接收字串中有其他之前接收的字元

*/fmt.println("receive server message content:" + string(buf[0:numofbytes]))

} fmt.println("client program end!")

}

// chatroom server

package main

import (

"fmt"

"log"

"net"

"os"

"strings"

)const (

log_directory = "./test.log" //記錄錯誤日誌的路徑

)var onlineconns = make(map[string]net.conn)//儲存客戶端鏈結對映 key為鏈結ip:port value為連線物件conn

var messagequeue = make(chan string, 1000)//訊息佇列 帶緩衝的buf

var logfile *os.file

var logger *log.logger

var quitchan = make(chan bool)

func checkerror(err error)

}//訊息接收協程

func processinfo(conn net.conn)

}(conn) //採用匿名函式的方式 呼叫defer

for

if numofbytes != 0 }}

//消費者協程

func consumemessage() }}

//訊息解析函式

func doprocessmessage(message string)

} } else

if conn, ok := onlineconns[contents[0]]; ok

}} }

}func main()

defer logfile.close()

//利用go自帶的log 將開啟檔案物件生成日誌檔案物件

logger = log.new(logfile, "\r\n", log.ldate|log.ltime|log.llongfile)

listen_socket, err := net.listen("tcp", "127.0.0.1:8080")

checkerror(err)

defer listen_socket.close()

fmt.println("server is waiting....")

logger.println("i am writing the logs...")

//開啟消費者協程

go consumemessage()

for

//開啟協程處理

go processinfo(conn)

}}

Go語言基礎知識點分享

最近在加深對go語言基礎知識學習,鞏固下基礎,同時分享給朋友們 go中單元測試 go 中給我們提供乙個包 testing,go 為我們提供一些很好的功能,我們可以在不需要太多學習的情況下使用它們。若要在 go 中開始使用測試,首先需要定義要測試的包。如果還沒有,請建立乙個名為 testing101 ...

C語言知識點(三) 基礎知識

防止該標頭檔案被重複引用 對於 include,編譯器從標準庫路徑開始搜尋 filename.h 對於 include filename.h 編譯器從使用者的工作路徑開始搜尋 filename.h 1 引用本身是變數的別名,對引用的操作就是對變數本身的操作 2 引用必須要被初始化,指標可以不被初始化...

C 基礎知識點(三)

委託 事件單獨列乙個部分來寫,專案裡面用到太多了。類似c 中的函式指標,乙個例子 int max int x,int y delegate int mydelegate int a,int b mydelegate md max 例項化 int c md 1,2 為了進一步簡化 直接不定義max函式...