Time of Update: 2017-01-18
概述我們已經知道 Go 語言提供了 sync.Pool,但是做的不怎麼好,所以有必要自己來實現一個 pool。給我看代碼:複製代碼 代碼如下:type Pool struct { pool chan *Client}// 建立一個新的 poolfunc NewPool(max int) *Pool { return &Pool{ pool: make(chan *Client, max), }}// 從 pool 裡借一個
Time of Update: 2017-01-18
Web是基於http協議的一個服務,Go語言裡面提供了一個完善的net/http包,通過http包可以很方便的就搭建起來一個可以啟動並執行Web服務。同時使用這個包能很簡單地對Web的路由,靜態檔案,模版,cookie等資料進行設定和操作。http包建立Web伺服器複製代碼 代碼如下:package mainimport ( "fmt" "net/http" "strings"
Time of Update: 2017-01-18
本文執行個體講述了go語言按顯示長度截取字串的方法。分享給大家供大家參考。具體分析如下:根據顯示長度截取字串,之前php用的utf8編碼,10個英文和10個漢字的顯示長度差距太大,按位元組截取的話又會出錯出現截取半個漢字的情況,所以寫了這兩個函數.這兩天在折騰golang,所以就用golang重寫了著連個函數.代碼如下:複製代碼 代碼如下:package mainimport ( "fmt")func main() {
Time of Update: 2017-01-18
本文執行個體講述了Go語言實現socket的方法。分享給大家供大家參考。具體分析如下:用golang不用他的net包還有什麼意義,這裡提供一個測試代碼:server.go 服務端:複製代碼 代碼如下:package mainimport ( "fmt" "log" "net" "bufio")func handleConnection(conn net.
Time of Update: 2017-01-18
本文執行個體講述了Go語言的隊列和堆棧實現方法。分享給大家供大家參考。具體如下:golang,其實我的實現是利用container/list包實現的,其實container/list包很強大.複製代碼 代碼如下:package mainimport ( "fmt" "container/list")func main() { // 產生隊列 l :=
Time of Update: 2017-01-18
本文執行個體講述了Go語言按位元組截取字串的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:// 按位元組截取字串 utf-8不亂碼func SubstrByByte(str string, length int) string { bs := []byte(str)[:length] bl := 0 for i:=len(bs)-1; i>=0; i--
Time of Update: 2017-01-18
本文執行個體講述了Go語言通過smtp發送郵件的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:package mainimport ( "net/smtp" "fmt" "strings")/* * user : example@example.com login smtp server user * password: xxxxx login smtp server
Time of Update: 2017-01-18
本文執行個體講述了Go語言實現的簡單網路連接埠掃描方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:package mainimport ( "net" "fmt" "os" "runtime" "time" "strconv")func loop(startport, endport int, inport chan int) { for i := startport; i <=
Time of Update: 2017-01-18
本文執行個體講述了Go語言實現選擇法排序的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:package mainimport "fmt"func select_sort(a []int) { len := len(a) for i:=0; i < len-1; i++ { k := i j:= i + 1 for ; j < len; j++
Time of Update: 2017-01-18
本文執行個體講述了Go語言實現的樹形結構資料比較演算法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:// Two binary trees may be of different shapes, // but have the same contents. For example:////
Time of Update: 2017-01-18
本文執行個體講述了Go語言檔案操作的方法。分享給大家供大家參考。具體如下:關閉檔案:複製代碼 代碼如下:func (file *File) Close() os.Error { if file == nil { return os.EINVAL } e :=
Time of Update: 2017-01-18
本文執行個體講述了Go語言實現冒泡排序、選擇排序、快速排序及插入排序的方法。分享給大家供大家參考。具體分析如下:演算法是程式的靈魂,而排序演算法則是一種最基本的演算法。排序演算法有許多種,這裡介紹4中排序演算法:冒泡排序,選擇排序,快速排序和插入排序,以從小到大為例。一、冒泡排序冒泡排序的原理是,對給定的數組進行多次遍曆,每次均比較相鄰的兩個數,如果前一個比後一個大,則交換這兩個數。經過第一次遍曆之後,最大的數就在最右側了;第二次遍曆之後,第二大的數就在右數第二個位置了;以此類推。複製代碼
Time of Update: 2017-01-18
本文執行個體講述了Go語言伺服器開發之用戶端向伺服器發送資料並接收返回資料的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:package mysocket import ( "fmt" "io" "net" ) func MySocketBase() {
Time of Update: 2017-01-18
本文執行個體講述了Go語言實現Fibonacci數列的方法。分享給大家供大家參考。具體如下:Fibonacci數列:1,1,2,3,5,8,13,21,,, (即從第三項起,每一項的值都等於前兩項之後)第一種,使用遞迴:複製代碼 代碼如下:func fibonacci(a int) int { if a == 1 || a == 2 {
Time of Update: 2017-01-18
本文執行個體講述了GO語言類型轉換和類型斷言的用法。分享給大家供大家參考。具體分析如下:由於Go語言不允許隱式類型轉換。而類型轉換和類型斷言的本質,就是把一個類型轉換到另一個類型。一、類型轉換(1)、文法:<結果類型> := <目標類型> ( <運算式> )(2)、類型轉換是用來在不同但相互相容的類型之間的相互轉換的方式,所以,當類型不相容的時候,是無法轉換的。如下:複製代碼 代碼如下:func test4() { var
Time of Update: 2017-01-18
多中語言實現判斷客戶訪問用得是那個網域名稱 然後轉到對應的目錄 asp版: 發表多個綁定多網域名稱的ASP代碼 如果有有一個ASP空間,而你又想放置多個多個網站,這些代碼可以幫到你 第一個 <%if Request.ServerVariables("SERVER_NAME")="bbs.along.com.ru" then response.redirect "bbs" else response.redirect
Time of Update: 2017-01-18
本文執行個體講述了Go語言寫入字串到檔案的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:package mainimport "fmt"import "os"func main() { fileName := "test.dat" dstFile,err := os.Create(fileName) if
Time of Update: 2017-01-18
本文執行個體講述了Go語言類比while語句實現無限迴圈的方法。分享給大家供大家參考。具體實現方法如下:這段代碼把for語句當成C語言裡的while(true)用實現無限迴圈複製代碼 代碼如下:package mainimport "fmt"func main() { sum := 0 for { sum
Time of Update: 2017-01-18
本文執行個體講述了Go語言map字典用法。分享給大家供大家參考。具體分析如下:這段代碼產生了青島、濟南、煙台三個城市拼音和漢字的對照字典,根據拼音可以輸出漢字複製代碼 代碼如下:package mainimport "fmt"func main(){ var pc map[string] string pc = make(map[string] string) pc["qingdao"] = "青島" pc["jinan"] = "濟南" pc[
Time of Update: 2017-01-18
本文執行個體講述了Go語言轉換所有字串為大寫或者小寫方法。分享給大家供大家參考。具體如下:Go語言的string模組包含了ToLower和ToUpper函數,用於將字串轉換成小寫和大寫複製代碼 代碼如下:package mainimport ( "fmt" "strings")func main() { fmt.Println(strings.ToUpper("hello world"))}希望本文所述對大家的Go語言程式設計有所協助。