Time of Update: 2017-01-18
1.func Contains(s, substr string) bool這個函數是尋找某個字元是否在這個字串中存在,存在返回true複製代碼 代碼如下:import ( "fmt" "strings")func main() { fmt.Println(strings.Contains("widuu", "wi")) //true fmt.Println(strings.Contains("wi", "widuu")) //false}2.func
Time of Update: 2017-01-18
def demo_input_and_output(): input = yield 'what is the input?' yield 'input is: %s' % inputgen = demo_input_and_output()print(gen.next())print(gen.send(42))這段代碼示範了 python generator 的功能。可以看到 yield 同時做了兩個操作,一個是往外發資料 "waht is the
Time of Update: 2017-01-18
1.Abstract在學習web開發的過程中會遇到很多困難,因此寫了一篇類似綜述類的文章。作為路線圖從web開發要素的index出發來介紹golang開發的學習流程以及Example代碼。在描述中多是使用代碼來描述使用方法不會做過多的說明。最後可以方便的copy代碼來實現自己的需求。本文適應對象: 對web開發有一定經驗的人 能夠靈活使用ajax的人(至少懂得前後分離)
Time of Update: 2017-01-18
Go被設計為一種後台語言,它通常也被用於後端程式中。服務端程式是GO語言最常見的軟體產品。在這我要解決的問題是:如何乾淨利落地升級正在啟動並執行服務端程式。目標: 不關閉現有串連:例如我們不希望關掉已部署的運行中的程式。但又想不受限制地隨時升級服務。 socket串連要隨時響應使用者請求:任何時刻socket的關閉可能使使用者返回'串連被拒絕'的訊息,而這是不可取的。
Time of Update: 2017-01-18
go語言中的interface是一組未實現的方法的集合,如果某個對象實現了介面中的所有方法,那麼此對象就實現了此介面。與其它物件導向語言不同的是,go中無需顯示聲明調用了哪個介面。複製代碼 代碼如下:package main import ( "fmt") type I interface { Get() int Put(int)} type S struct{ i int } func (p *S) Get()
Time of Update: 2017-01-18
1、變數聲明和賦值文法Go語言中的變數聲明使用關鍵字var,例如複製代碼 代碼如下:var name string //聲明變數name = "tom" //給變數賦值這邊var是定義變數的關鍵字,name是變數名稱,string是變數類型,=是賦值符號,tom是值。上面的程式分兩步,第一步聲明變數,第二步給變數賦值。也可以將兩步合到一起。複製代碼 代碼如下:var name string =
Time of Update: 2017-01-18
常量是程式中最基礎的元素,在定義之後就不能再重新賦值了。Go語言中的常量類型有布爾常量、整數常量、浮點數常量、 字元常量、字串常量和複數常量 。布爾常量複製代碼 代碼如下:const x = truefmt.Print(x) //輸出true整數常量複製代碼 代碼如下:const x = 20fmt.Print(x) //輸出20浮點數常量複製代碼 代碼如下:constx = 0.618fmt.Print(x) //輸出%f0.618字元常量複製代碼 代碼如下:const x = 'a'fmt.
Time of Update: 2017-01-18
在ubuntu論壇上看到一個抓取網頁裡的圖片資料的文章,於是就想著用GO語言來試下。那麼先安裝一個運行環境吧。以下安裝方式在32位和64位的ubuntu12.04上都安裝成功,並且所有命令,程式我都實際運行過,如果有問題,請給我留言。1、安裝MercurialMercurial是一個版本控制系統,一會要用這個工具下載Go語言的源碼。在ubuntu下就用apt-get安裝就OK了,非常方便。複製代碼 代碼如下:sudo apt-get install
Time of Update: 2017-01-18
先把目前時間格式化成相同格式的字串,然後使用time的Before, After, Equal 方法即可.time1 := "2015-03-20 08:50:29"time2 := "2015-03-21 09:04:25"//先把時間字串格式化成相同的時間類型t1, err := time.Parse("2006-01-02 15:04:05", time1)t2, err := time.Parse("2006-01-02 15:04:05", time2)if err == nil &&
Time of Update: 2017-01-18
有人把Go比作21世紀的C語言,第一是因為Go語言設計簡單,第二,21世紀最重要的就是並行程式設計,而Go從語言層面就支援了並行。goroutinegoroutine是Go並行設計的核心。goroutine說到底其實就是線程,但是它比線程更小,十幾個goroutine可能體現在底層就是五六個線程,Go語言內部幫你實現了這些goroutine之間的記憶體共用。執行goroutine只需極少的棧記憶體(大概是4~5KB),當然會根據相應的資料伸縮。也正因為如此,可同時運行成千上萬個並發任務。goro
Time of Update: 2017-01-18
interfaceGo語言裡面設計最精妙的應該算interface,它讓物件導向,內容組織實現非常的方便,當你看完這一章,你就會被interface的巧妙設計所折服。什麼是interface簡單的說,interface是一組method的組合,我們通過interface來定義對象的一組行為。我們前面一章最後一個例子中Student和Employee都能SayHi,雖然他們的內部實現不一樣,但是那不重要,重要的是他們都能say
Time of Update: 2017-01-18
前面兩章我們介紹了函數和struct,那你是否想過函數當作struct的欄位一樣來處理呢?今天我們就講解一下函數的另一種形態,帶有接收者的函數,我們稱為methodmethod現在假設有這麼一個情境,你定義了一個struct叫做長方形,你現在想要計算他的面積,那麼按照我們一般的思路應該會用下面的方式來實現複製代碼 代碼如下:package mainimport "fmt"type Rectangle struct { width, height float64
Time of Update: 2017-01-18
structGo語言中,也和C或者其他語言一樣,我們可以聲明新的類型,作為其它類型的屬性或欄位的容器。例如,我們可以建立一個自訂類型person代表一個人的實體。這個實體擁有屬性:姓名和年齡。這樣的類型我們稱之struct。如下代碼所示:複製代碼 代碼如下:type person struct { name string age
Time of Update: 2017-01-18
在開始編寫應用之前,我們先從最基本的程式開始。就像你造房子之前不知道什麼是地基一樣,編寫程式也不知道如何開始。因此,在本節中,我們要學慣用最基本的文法讓Go程式運行起來。程式這就像一個傳統,在學習大部分語言之前,你先學會如何編寫一個可以輸出hello world的程式。準備好了嗎?Let's Go!複製代碼 代碼如下:package mainimport "fmt"func main() { fmt.Printf("Hello, world or 你好,世界
Time of Update: 2017-01-18
Go 命令Go語言內建有一套完整的命令操作工具,你可以通過在命令列中執行go來查看它們:圖1.3 Go命令顯示詳細的資訊這些命令對於我們平時編寫的代碼非常有用,接下來就讓我們瞭解一些常用的命令。go build這個命令主要用於測試編譯。在包的編譯過程中,若有必要,會同時編譯與之相關聯的包。1.如果是普通包,就像我們在1.2節中編寫的mymath包那樣,當你執行go build之後,它不會產生任何檔案。如果你需要在$GOPATH/pkg下產生相應的檔案,那就得執行go
Time of Update: 2017-01-18
GOPATH設定go 命令依賴一個重要的環境變數:$GOPATH1(註:這個不是Go安裝目錄。下面以筆者的工作目錄為說明,請替換自己機器上的工作目錄。)在類似 Unix 環境大概這樣設定:複製代碼 代碼如下: export GOPATH=/home/apple/mygo為了方便,應該把建立以上檔案夾,並且把以上一行加入到 .bashrc 或者 .zshrc 或者自己的 sh 的設定檔中。Windows 設定如下,建立一個環境變數名稱叫做GOPATH:複製代碼
Time of Update: 2017-01-18
Go的三種安裝方式Go有多種安裝方式,你可以選擇自己喜歡的。這裡我們介紹三種最常見的安裝方式:1.Go源碼安裝:這是一種標準的軟體安裝方式。對於經常使用Unix類系統的使用者,尤其對於開發人員來說,從源碼安裝是最方便而熟悉的。2.Go標準包安裝:Go提供了方便的安裝包,支援Windows、Linux、Mac等系統。這種方式適合初學者,可根據自己的系統位元下載好相應的安裝包,一路next就可以輕鬆安裝了。3.第三方工具安裝:目前有很多方便的第三方軟體包工具,例如Ubuntu的apt-get、Mac
Time of Update: 2017-01-18
包(package)一個程式以一個包的形式構建,這個包還可以使用其他包提供的一些設施。一個golang程式的建立是通過連結一組包。一個包可以由多個源碼檔案組成。匯入包中的名字可以通過packagename.Itemname訪問。源碼檔案結構golang每個源碼檔案包括:- 一個package字句(檔案歸屬於哪個包);其名字將作為匯入包時的預設名字。複製代碼 代碼如下:package fmt- 一個可選的import聲明集複製代碼 代碼如下:import "fmt" //使用預設名字import
Time of Update: 2017-01-18
建立一個用於編寫Go程式的工作目錄go-examples,其絕對路徑為/home/go-examples.開始編寫我們的第一個Go程式。一、在go-examples下建立一個檔案hello.go複製代碼 代碼如下://hello.go package mainimport "fmt"//實現格式化的I/O /*Printf someting*/ func main(){
Time of Update: 2017-01-18
新版本的go有更好的效能,ubuntu軟體庫只有交舊的版本,通過源碼安裝go1.2具體步驟:1、去官網下載go1.1.2的tarball,我下載到tem目錄2、開啟終端cd /usr/local, tar -zxvf go1.1.2.linux-386.tar.gz將源碼檔案解壓縮到/usr/local目錄,如果解壓到其他目錄,需要自己設定GOROOT3、安裝gcc工具,因為golang有些功能是使用c寫sudo apt-get install bison gawk gcc libc6-dev