Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 go的stmp包中預設只有plainAuth和cramMD5Auth實現,有的郵件伺服器必須要以LOGIN模式認證才能正常發送郵件,前段時間寫go版本的郵件發送服務時實現的LoginAuth以及官方的smtp.go做了一些修改。解決對某些smtp伺服器不能LOGIN成功的問題。代碼在:https://github.com/trygo/util.git下的ismtp下
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package github.com/codegangsta/martini: exec: "git": executable file not found in
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。我將在mac os
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。什麼是Go?來自於網站: Go 程式設計語言是一個使得程式員更加有效率的開源項目。Go 是有表達力、簡潔、清晰和有效率的。它的並行機制使其很容易編寫多核和網路應用,而新奇的類型系統允許構建有彈性的模組化程式。Go 編譯到機器碼非常快速,同時具有便利的記憶體回收和強大的運行時反射。它是快速的、靜態類型編譯語言,但是感覺上是動態類型的,解釋型語言。 首先介紹go語言的特性--並行 :Go
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go語言中init函數用於包(package)的初始化,該函數是go語言的一個重要特性,有下面的特徵:1 init函數是用於程式執行前做包的初始化的函數,比如初始化包裡的變數等2 每個包可以擁有多個init函數3 包的每個源檔案也可以擁有多個init函數4 同一個包中多個init函數的執行順序go語言沒有明確的定義(說明)5 不同包的init函數按照包匯入的依賴關係決定該初始化函數的執行順序6
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 有一個需求是用go語言程式調用外部命令時,允許使用管道符,如 ls | wc -l Go語言對外部命令的調用進行了一定的封裝,下面來試一下: package mainimport ("os""os/exec")func main() {run1()}func run1() {cmd := exec.Command("ls", "|", "wc", "-l")cmd.Stdout =
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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。goPy 是一個新的開源項目,實現了用 Go 語言來編寫 CPython 擴充。範例程式碼:01package simple02 03import (04 "fmt"05 "gopy"06)07 08func example(args *py.Tuple) (py.Object, error) {09 fmt.Printf("simple.example: %v\n"
Time of Update: 2014-10-04
這是一個建立於
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport( //"fmt" "time")var c = make(chan int,100)func gofunc(){ time.Sleep(0) c<-0}func main(){ for i:=0;i<10;i++{ for j:=0;j<10000;j++{ go gofunc(
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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近看了一篇關於go產品開發最佳實務的文章,go-in-procution。作者總結了他們在用go開發過程中的很多實際經驗,我們很多其實也用到了,鑒於此,這裡就簡單的寫寫讀後感,後續我也爭取能將這篇文章翻譯出來。後續我用soundcloud來指代原作者。 開發環境 在soundcloud,每個人使用一個獨立的GOPATH,並且在GOPATH直接按照go規定的代碼路徑方式clone代碼。
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。linux下,google的go語言安裝起來很方便,用起來也很爽,幾行代碼就可以實現很強大的功能。現在的問題是我想在windows下玩……其實windows下也不麻煩,具體見下文。一、安裝go語言:1、安裝MinGW(https://bitbucket.org/jpoirier/go_mingw/downloads)2、下載源碼 進入C:\MinGW,雙擊mintty開啟終端視窗; 執行"hg clone -u
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一個朋友的網站用php開發的,總是感覺慢. 我將其中的查詢sql server 代碼改成go語言 (有7000多條記錄) 都能感覺到速度比以前快多了. 努力繼續學go語言吧. php沒有使用任何架構. package mainimport (_ "github.com/lunny/godbc""github.com/go-xorm/xorm""net/http""fmt&
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在實現函數時,如果中間的步驟出錯,需要釋放資源並退出函數,這些工作很繁雜,容易出錯。 go語言的作者對過去十年軟體開發的經曆感到失望,針對這個問題,他帶來了defer方法,它能讓不管在函數內的哪個地方exit,都確保你有機會清掃乾淨。Delphi XE中也可實現一個類似的方法。 program demo_defer;{$APPTYPE CONSOLE}uses SysUtils, coroutineUnit;
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
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。英文原文: http://blog.golang.org/2012/07/gccgo-in-gcc-471.html Go語言開始就由一個語言規範定義,並不是倚賴某個具體實現。Go開發小組針對語言規範,實現了兩個不同版本的編譯器:gc和gccgo。 有兩個不同的實現有助於保持語言規範的完整和完整:當兩個實現相互衝突時,我們修改語言規範,或者是修改實現以保持和規範一致。
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。這些東西是平時遇到的, 覺得有一定的價值, 所以記錄下來, 以後遇到類似的問題可以查閱, 同時分享出來也能方便需要的人, 轉載請註明來自RingOfTheC[ring.of.the.c@gmail.com] 這幾天看go文檔時看到這麼一段話: Go is a new language. Although it borrows ideas from existing languages, it has
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 安裝Mercurial在進行後面的操作之前需要安裝Mercurial版本管理系統(可以輸出hg名詞檢測是否安裝)。輸入以下命令安裝:$ yum install mercurial 擷取代碼以下命令會建立一個go目錄。切換到相應目錄,並且確保當前位置不存在go目錄,運行命令:$ hg clone -r release https://go.googlecode.com/hg/ go 安裝Go編譯go環境:$ cd
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