Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。可變參數函數支援任意數量的傳入參數。例如:fmt.Println 就是一個常見的可變參數函數。package mainimport "fmt"// 這個函數可以使用任意數量的int型數作為參數func sum(nums ...int) { fmt.Print(nums, " ") total := 0 for _, num := range nums { total
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。在聲明channel對象的參數時,一定要寫成 c chan xxx,xxx代表channel的類型。例如package mainimport ("fmt"//"time")func main() {c := make(chan bool, 1)for i := 0; i < 10; i++ {go Go(c, i)}<-c}func Go(c chan bool, index int)
Time of Update: 2015-06-18
這是一個建立於
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。GO程式是由包組成的。程式的入口是包 ‘main’匯入包使用 import 語句 (類似於C語言的 include)匯入一個包後,用匯出的名稱來調用(匯出的名稱首字母為大寫) GO中的函數用func申明,函數中的參數可以沒有參數或接受多個參數。 類型申明在參數名和函數定義之後。 GO的傳回值可以被命名後像變數一樣來使用。 var語句定義了一個變數的列表,類型申明在變數名之後。
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。1.設計歸檔頁面首先在開始之前,我要說一下,有的同學在做的時候可能發現import的時候,一會是"MyTest/app/models",一會是"GBlog/app/models"
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。功能要求:監控 http、tcp、udp 等服務狀態分析 nginx、tomcat、weblogic 等日誌監控 linux 伺服器 cpu、硬碟、記憶體、網卡流量郵件警示go 主要用來寫後台代碼和監控 linux 伺服器的 client 代碼,並提供一個 api 給 angularjs 來查詢和更新資料。上面這些功能使用 python 更容易實現一些(python 有許多現成的模組可以使用),只不過拿這個項目作為學習 go
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go 語言中包括以下內建基礎類型:布爾型:bool整型:int int64 int32 int16 int8 uint8(byte) uint16 uint32 uint64 uint浮點型:float32 float64複數型:complex64 complex128字串:string字元型:rune錯誤型:error1. bool類型關鍵字: bool可定義為: true 或者 false 或者 邏輯運算式var bool1
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package main import ("fmt""runtime""time") func main() {runtime.GOMAXPROCS(runtime.NumCPU())c := make(chan bool, 100)t := time.Tick(time.Second) go func() {for {select {case <-t:watching()}}
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。今天將一個vc工程拷貝了一份到當前檔案夾下儲存,並用vc開啟複製的工程開始修改程式,發現在使用在標頭檔裡使用go to definition時,經常跳轉到拷貝前的那個工程源檔案裡,而不是當前源檔案裡。另外,記得以前使用vc時也經常出現go to definition操作跳轉不準,老是錯位幾行。仔細查了以下,發現go to
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。package mainimport ("fmt""go-ssh/ssh""io""os")const (user = "user"ip_port = "ip_port"password = "Passwd")func main() {PassWd :=
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。先做一個練習題:http://tour.golangtc.com/moretypes/18練習:map實現 `WordCount`。它應當返回一個含有 s 中每個 “詞” 個數的 map。函數 wc.Test 針對這個函數執行一個測試案例,並列印成功或者失敗。你會發現 strings.Fields 很有協助。My Code:package mainimport (
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。反射機制基本和Java等類似,可擷取struct或變數的類型 值等資訊。擷取或修改對象的值時,一定要判斷該屬性是否為可操作狀態,否則會導致錯誤。範例程式碼如下:package mainimport ("fmt""reflect")///首字母大寫表示該欄位可匯出,並可修改值type User struct {ID intname string //未匯出Age int}func (u
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。// File represents an open file descriptor.type File struct { *file}// NewFile returns a new File with the given file descriptor and name.func NewFile(fd uintptr, name string) *File { h := syscall.Handle(fd)
Time of Update: 2015-06-18
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go語言中一個完整的函數定義形式如下:func (t type) funcname(a int)(b,c int){ return 1,2}1.func是定義函數的關鍵字2.(t type):這一部分叫做receiver部分,它表示該函數用於特定的類型3.funcname:函數的名字4.(a int):函數接受的參數5.(b,c int):函數的傳回值,GO語言的函數是可以同時返回多個值的6.{ return
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。上一篇文章提到了普通的channel用來進行線程的同步。Go語言裡面還有一種緩衝式的channel。ch := make(chan int, 100)需要執行類型和緩衝區的大小。package mainimport "fmt"func main() {c := make(chan int, 2) //建立int類型大小為2的緩衝區c <- 1 //緩衝區1賦值為1c <-
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。一、slice的概念:Slices(切片)slice是概念上一個結構包含三個域:一個數組的指標、長度和容量。切片支援[]操作符來訪問底層數組的元素。內建的len函數返回的切片長度。內建的的cap函數返回切片的容量。切片是參考型別,這意味著如果你將一個切片賦值給另外一個切片,這兩個切片將引用同一個底層數組。二、如何建立slice建立切片可用以下兩種方法:(1)直接建立:s := make([]int, 10)建立了名為s 的,有10
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。// 對於簡的map 例如 map[string] string 還是很好掌握的// 下面這個程式示範複雜的mappackage mainimport "fmt"type PersonInfo struct { ID string Name string Address string}func main() { personDB :=
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。import我們在寫Go代碼的時候經常用到import這個命令用來匯入包檔案,而我們經常看到的方式參考如下:import( "fmt")然後我們代碼裡面可以通過如下的方式調用fmt.Println("hello
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。struct類型1. 概述 與C語言struct一樣,與java/php等class類似,在Go中,用於擴充類型,物件導向編程(本部分暫未做詳細介紹)等 聲明格式:(是類型的組合) type typeName struct { //... }2. 聲明及初始化 方法有幾種: var varName typeName //① varName := new(typeName)
Time of Update: 2015-06-17
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。學習一門語言,總是先來一個HelloWorld,正如學習每一門樂器之初,先來一首媽媽的吻。Go語言是通過Package來組織的,它自身只有25個關鍵字(比起其它的語言精簡了好多吧),這些分別是:break default func interface select case defer go map struct chan else goto package switch const fallthrough if range