Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。GO作為一門新興語言,為什麼會在眾多新語言中脫穎而出?為什麼曾一度出現在TIOBE熱門排行榜上面,在本文中我們就來為大家解開其中的神秘面紗。Go是一種根本性的反思母語,在很大程度上改善了C語言的不足地方並且保持了C的極簡主義。已經有好多程式員都把Go語言描述為是一種所見即所得
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package 指明源檔案所在的包func 用於定義函數go裡面除了for迴圈的初始化用到;,其他大部分都不需要go中沒有while迴圈,不過可以利用 for condition來類比while 編譯:go builde 編譯的檔案名稱定義一個變數,比如字串var s string = ""go也自動推匯出類型var s = "";也可以 s:="":=用在值聲明並且初始化05
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。既然已經知道msgpack-java/msgpack-c裡,預設情況下把class pack成類似json-array 而msgpack-go,預設情況下把class pack成類似json-map 順著這個,翻看msgpack-Go的代碼,找到了MsgpackHandle 。。。。中間過程省略 最後找到答案,其實msgpack-go已經提供好api
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go 語言下載地址: http://code.google.com/p/go/downloads/list下載 輕量開發工具 http://code.google.com/p/liteide/ 我為什麼喜歡Go語言使用CGO封裝Windows API用Go寫Windows案頭應用 - 使用Form用Go寫Windows案頭應用 - 使用資源檔用Go寫Windows案頭應用 - 使用表單設計器 http檔案分享權限設定//
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 go語言/IDE/golang/go語言list和slice效能測試 package mainimport (l "container/list""fmt""time")var (name = "viney")func list() {names := l.New()t := time.Now()for i := 1; i <= 1000000; i++
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 go語言的控制結構有 if switch for if例子: func IfFunc(i int, b bool) int { // 此函數參數為int類型的i 布爾類型b 返回int類型var k int k = 1if b { //if 條件判斷是這種形式,後面加{號 此{號必須與if同一行,放入下一行go編譯出錯if i > 10 {k = 5
Time of Update: 2014-10-04
這是一個建立於
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 2012-03-31:新版的goclipse改進很大,本文有些內容已淘汰。 1.下載go的windows下的安裝包: https://code.google.com/p/go/downloads/list 也可以下載原始碼,用MinGW編譯。先配置好MinGW的環境,再運行all.bat即可。 MingW:http://www.mingw.org/
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。上一篇部落客要是講如何避免在高並發下使用太多系統線程或進程,但如果僅僅是減少了線程數,CPU利用率本身沒有上來,那麼系統的容量很低,那麼仍然無法達到高並發的目的。通常情況下,我們會設定線程數等於CPU數,充分利用CPU就等價於如何讓線程一直工作,避免把時間浪費在等待系統調用返回上,從而提高系統容量。很多 linux 平台下的非同步架構都基於 epoll 來設計,但 epoll 本身只支援 fd,
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。閱讀該文後的一些理解 1 io.Writer介面 io.Writer介面有如下定義 package io type Writer interface { Write(p []byte) (n int, err error)}//根據go中介面的特點,所有實現了Write方法的類型,我們都說它實現了io.Writer介面。 2 somepkg.abc類型實現了io.Writer介面 package
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。自2009年Go語言發布以來,我一直在關注Go語言,如今Go語言已經發展到1.2版本,而且也收到越來越多的人關注這門語言。Go語言設計的目的就是為瞭解決執行數度快但是編譯數度並不理想(如C++)以及編譯速度快但執行效率不佳(.NET、Java),或者開發難度低但執行速度一般的動態語言這一問題。所以說,Go語言的特點是:快速編譯,高效執行,易於開發。好了,跳過那些框框條條的craps,
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go語言串連mysql資料庫 php雖然開發速度快,但是效能實在是有待提高。 C和C++?不擅長,讀別人的代碼都有困難,更不要提自己寫了。 經人介紹,開始使用go語言,開發速度比較快,效能也還不錯。 http://golang.org/ 最近需要使用go語言串連mysql資料庫, 第一反應是去找官方的package: http://golang.org/pkg/database/
Time of Update: 2014-10-04
這是一個建立於
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Go是Google開發的一種編譯型,並髮型,並具有記憶體回收功能的程式設計語言。羅伯特·格瑞史莫(Robert Griesemer),羅勃·派克(Rob Pike)及肯·湯普遜於2007年9月開始設計Go語言,[1],稍後Ian Lance Taylor, Russ Cox加入專案中。 Go語言這個出自大公司Google的大牛的作品, 為什麼沒有象出自Microsoft的anders
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go中的goroutine是go語言在語言層級支援並發的一種特性。初接觸go的時候對go的goroutine的歡喜至極,實現並發簡便到簡直bt的地步。但是在項目過程中,越來越發現goroutine是一個很容易被大家濫用的東西。goroutine是一把雙面刃。這裡列舉一下goroutine使用的幾宗罪:1 goroutine的指標傳遞是不安全的fun main() {request := request.NewRequest() /
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 go語言在雲端運算時代將會如日中天,還抱著.NET不放的人將會被淘汰。學習go語言和.NET完全不一樣,它有非常簡單的runtime 和 類庫。最好的辦法就是將整個原始碼讀一遍,這是我見過最簡潔的系統類別庫。讀了之後,你會真正體會到C#的物件導向的表達方式是有問題的,繼承並不是必要的東西。相同的問題,在go中有更加簡單的表達。 go runtime 沒有提供任何的鎖,只是提供了一個PV操作原語。獨佔鎖,條件鎖
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go 語言的一個很大的優勢就是可以方便地編寫並發程式。go 語言內建了 goroutine 機制。這是一種類似 coroutaine(協程) 的東西。但是又不完全相同。比如這個例子:package mainimport ("fmt""strconv")func main() {ch := make(chan int)task("A", ch)task("B", ch)fmt.Printf("begin\n")運行以後,發現會 A
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。更新 go1.1正式版 已經在北京時間5月14日10點左右發布 從google網站的go下載頁找到對應的包,我這裡是linux64位,所以我下載go1.1.linux版 本文參考自官方手冊 確定環境 go在運行時會讀取環境變數,如未讀到相關環境變數,則按預設值運行 例如${GOROOT}表示為安裝位置,如未正確設定,會造成運行時找不到對應檔案 在家目錄(~)下的.bashrc檔案最後加入以下內容$ vi
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 看《Go入門指南》 ,這裡講得比較基礎,針對go 1.0版,以下是一些我自己覺得特別和不容易理解的地方的摘抄! 上次有說到go裡不同類型之間操作必須顯示轉換,int和uint不固定,所以int 不是int32int 和 uint 在 32 位作業系統上,它們均使用 32 位(4 個位元組),在 64 位元作業系統上,它們均使用 64 位元(8 個位元組)。package mainfunc main() { var a
Time of Update: 2014-10-04
這是一個建立於