Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。壓縮檔 package main import ( "fmt" "os" "io" "archive/tar" "compress/gzip") func main() { // file write fw, err := os.Create("tar/lin_golang_src.tar.gz
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 golang時間處理 相關包 "time" 目前時間戳 fmt.Println(time.Now().Unix())# 1389058332 當前格式化時間 fmt.Println(time.Now().Format("2006-01-02 15:04:05")) # 這是個奇葩,必須是這個時間點, 據說是go誕生之日, 記憶方法:6-1-2-3-4-5# 2014-0
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1: go 大寫字母開頭的變數是可以匯出的,即其他包可以讀取的,是公有變數;小寫字母開頭的是不可以匯出的,是私人變數, 函數的大寫字母開頭也是如此 2: ]int和[5]int這兩種表達方式在Go語言裡有根本性的區別。[]int不是數組,而是數組切片(slice),而[5]int是一個數組。在Go語言中,數組是實值型別,而數組切片是參考型別。
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 Debuggers Application programming needs good debugging support, and in this area still a lot of work needs to be done. A debugger (Oogle): support for gdb (at least version 7 is needed), the GNU debugger is being
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。golang並沒有在語言層次上提供逾時操作,但可以通過一些小技巧實現逾時。 原理: 並發一個函數,等待1s後向timeout寫入資料,在select中如果1s之內有資料向其他channel寫入則會順利執行,如果沒有,這是timeout寫入了資料,則我們知道逾時了。
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 想寫點golang的程式,暫時沒錢租伺服器。 發現七牛支援golang開發。打算嘗試下: 我的系統是debian。windows應該類似: 以前有開發googleappengine的經驗。七牛也有類似的命令列,不過沒有介面。 需要使用 qrsync 命令列協助工具輔助, 地址:http://docs.qiniutek.com/v3/tools/qrsync/
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。最近再實現一些功能, 用到了protobuf 還有 xml 。從他們書寫的類型或是測試案例中, 看到了大量這樣的資料結構:type Person struct {Name string `xml:"name"`URI string `xml:"uri,attr"`Email string `xml:"email,omitempty"`InnerXML string `xml:"
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 mkdir /opt/go vim go_install.sh
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 代碼如下: package mainimport s "strings"//別名import ("fmt")var p = fmt.Printlnfunc main() {p("Contains: ", s.Contains("test", "es")) //是否包含 truep("Count: ", s.Count("
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 數組: 定義方式:var arr [n]type,n表示數組的長度,type表示儲存元素的類型。定義好後,可以使用arr[0] = 42,這樣指定下標來進行數組的讀取和賦值。 注意:在go中長度也是類型的一部分,因此[3]int和[5]int是不同類型的。 go中數組不可以改變長度,數組之間的賦值是值的拷貝賦值,即當把一個數組作為一個參數傳人函數的時候,傳入的其實是數組的備份。arr := [10]int{1,2,
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。無聊嘗試一下golang串連hdfs, 寫了個hello world golang包地址 https://github.com/vladimirvivien/gowfs 安裝 go get github.com/vladimirvivien/gowfs 寫程式之前需要修改hadoop的兩個設定檔 分別是 hsdfs-site.xml 裡的 dfs.webhdfs.enabled <property>
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 1、在golang中import 包A的時候,會自動隱式的調用該包A的init()函數(i字母小寫)。 2、調用順序:如果該包A又import了別的包B,會優先調用包B的init()函數,最後才調用main包的init()函數。 3、一個包的init()函數可以定義多個,每個都會被調用,調用的順序按檔案名稱排序。
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。用python開發也有幾年了,很喜歡它的簡潔。最近在看golang,感覺和python很像,文法簡潔,標準類型相識,標準庫也是一樣的豐富。引用一段文字(http://blog.csdn.net/myan/article/details/2028545): 所謂”魔幻語言“,主要代表作品有C++、Perl、Javascript和Ruby。這些語言擁有豐富的特性,聰明的技
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。這個是做什麼用的? fswatch是一個工具, 通過檢測檔案的變化,並觸發指定的命令 為什麼需要fswatch 寫完代碼最重要的事情之一, 就是檢測一下寫好的代碼是不是能夠工作. 要早提前做的話, 收效越好, 發現的問題越多. 但是如果每次都需要make test, 每次都去編譯或者測試的話, 還是挺煩人的. 所以如果能有一個自動化的工具去做的話, 那將是件很爽的事情. 最近我在忙一個項目, 經常性的需要, 停下來,
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 1. 下載gdb for windows ,點此下載 2.解壓後,將目錄添加到環境變數path 3. 安裝sublimeGdb, 開啟sublime text2 ,ctrl+shift+p, install package,選擇sublimeGdb,斷行符號 4.配置setting , 在sublime text2 中,選擇菜單 Preferences--Package
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。類比測試1,000, 000條資料 每條10個位元組 也就是10M不到的 資料(高度結構化的資料) 過程 1.對象序列化為 byte 2.byte反序為對象 3.gzip壓縮byte 測試語言go測試方案: raw byte,json ,bson, msgpack (protostuff需要先做對象設定檔,比較麻煩,通常認為和msgpack效能相當 )結果:msgpack 勝出 大小
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1. golang程式已耗用時間顯示
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一:安裝goLang 1、下載安裝go語言。 官網下載地址: https://code.google.com/p/go/wiki/Downloads?tm=2 選擇整合與開發環境對應的.msi安裝包 ,如:go1.2.2.windows-amd64.msi 2、安裝。 注意:千萬不要在路徑有中文。否則之後將無法正常使用Go語言開發工具 由於使用msi安裝檔案,所以Go語言的環境變數已經自動化佈建好了。
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 1. golang的函數類型轉換 一個go playground的例子,首先定義一個func類型的別名A,然後定義了A的一個方法。再定義一個函數,此函數的參數與傳回值與A相同(這樣才能顯式轉換)。在main中把此函數顯式轉換為A類型,這樣它就可以調用A的方法了。 package mainimport "fmt"type A func(int, int)func (f A)Serve()
Time of Update: 2014-10-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。func main() {x := 1defer func(a int) { fmt.Println("a=", a) }(x)defer func() { fmt.Println("x=", x) }()x++} 結果: x=2 a=1 說明: defer 調用所需參數在 defer 語句執行時就被已計算好了 (拷貝傳遞),閉包內則是引用,defer執行順序FIFO 數組和slice