Time of Update: 2017-01-18
struct和C語言的很相似,類比出class的功能,但是不完全的!沒有建構函式等!struct的申明複製代碼 代碼如下:package mainimport "fmt"type Person struct { Age int Name string}func main() { //初始化兩種 a := Person{} a.Age = 2 a.Name = "widuu" fmt.Println(a)
Time of Update: 2017-01-18
(1)os.Getwd函數原型是func Getwd() (pwd string, err error) 返回的是路徑的字串和一個err資訊,為什麼先開這個呢?因為我看os的包的時候第一個是Chkdir這個包,但是你不知道目前的目錄怎麼知道改變目錄了呢?所以先說Getwd() 函數demo複製代碼 代碼如下:import ( "fmt" "os")func main() { dir, _ := os.Getwd() fmt.Println("當前的目錄是:
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
包(package)一個程式以一個包的形式構建,這個包還可以使用其他包提供的一些設施。一個golang程式的建立是通過連結一組包。一個包可以由多個源碼檔案組成。匯入包中的名字可以通過packagename.Itemname訪問。源碼檔案結構golang每個源碼檔案包括:- 一個package字句(檔案歸屬於哪個包);其名字將作為匯入包時的預設名字。複製代碼 代碼如下:package fmt- 一個可選的import聲明集複製代碼 代碼如下:import "fmt" //使用預設名字import
Time of Update: 2017-01-18
Go語言開發環境的搭建(Windows)Windows下的Go語言開發安裝包官方下載地址:https://code.google.com/p/go/downloads/list雲棲社區下載地址:http://www.jb51.net/softs/237132.htmlGo語言中文官網(有相關參考和文檔)http://zh.golanger.com/方法/步驟1、在Go語言的Google代碼項目上下載Windows下的Go語言開發包(下載地址見工具)。有zip壓縮版和msi安裝版兩個按本下載。(這
Time of Update: 2017-01-18
Go語言是Google2009發布的第二款開源程式設計語言。Go語言專門針對 多處理器系統應用程式的編程進行了最佳化,使用Go編譯的程式可以媲美C或C++代碼的速度,而且更加安全、支援並行進程。還是我自己的電腦,我自己安裝的是ubuntu 12.04版本的,直接介紹安裝吧!其實搭建環境很簡單!複製代碼 代碼如下:sudo apt-get install python-setuptools python-dev build-essential //安裝mercurial依賴sudo
Time of Update: 2017-01-18
本文執行個體分析了GO語言基本類型。分享給大家供大家參考。具體如下:一、整型go語言有13種整形,其中有2種只是名字不同,實質是一樣的,所以,實質上go語言有11種整形。如下:(1)int :依賴不同平台下的實現,可以是int32或int64(2)int8 : (-128->127)(3)int16: (-32768->32767)(4)int32: (-2 147 483 648->2 147 483 647)(5)int64 :(-9 223 372 036 8
Time of Update: 2017-01-18
如題,關鍵不是圖怎麼樣,而是說,go可以拿來實現動態圖驗證碼,加上go支援cgi、fcgi,完全可以做個exe拿去增補現有的伺服器麼。ball.gopackage mainimport ( "github.com/hydra13142/cube" "github.com/hydra13142/geom" "github.com/hydra13142/paint" "image" "image/color/palette" "image/gif" "math" "os")var (
Time of Update: 2017-01-18
因為平時管理的web伺服器都是VM伺服器,為節省硬碟空間,一般給虛擬機器分配的硬碟空間都比較小,只有8G,因為,儲存不了多少日誌,所以每天都需要把每台WEB日誌轉移到一個硬碟比較大的伺服器上,然後再使用NBU集中備份,本程式主要使用go語言實現實現將web日誌通過FTP自動上傳FTP伺服器,使用了filepath.Walk遍曆日誌目錄及第三方純go庫“github.com/jlaffaye/ftp”,而日誌VM本機存放區路徑格式是
Time of Update: 2017-01-18
功能很簡單,代碼也很簡潔,這裡就不多廢話了。複製代碼 代碼如下:package mainimport ( "fmt" "io" "net/http" "os")const ( upload_path string = "./upload/")func helloHandle(w http.ResponseWriter,
Time of Update: 2017-01-18
本文執行個體講述了Go語言實現順序儲存的線性表的方法。分享給大家供大家參考。具體如下:代碼如下:複製代碼 代碼如下://///////// 順序儲存線性表////////package mainimport "fmt"const MAXSIZE = 20 //定義數組長度//定義線性表結構type List struct { Element [MAXSIZE]int //儲存線性表元素的數組 length
Time of Update: 2017-01-18
本文執行個體講述了go語言通過odbc操作Access資料庫的方法。分享給大家供大家參考。具體如下:這裡需要用到go-odbc庫,下載地址為:https://github.com/weigj/go-odbc複製代碼 代碼如下:package main;import ( "fmt" "database/sql" _"odbc/driver")func main(){ conn,err :=
Time of Update: 2017-01-18
本文執行個體匯總了Go語言常用字串處理方法。分享給大家供大家參考。具體如下:複製代碼 代碼如下:package mainimport ( "fmt" "strings" //"unicode/utf8")func main() { fmt.Println("尋找子串是否在指定的字串中") fmt.Println("
Time of Update: 2017-01-18
本文執行個體講述了go語言睡眠排序演算法。分享給大家供大家參考。具體分析如下:睡眠排序演算法是一個天才程式員發明的,想法很簡單,就是針對數組裡的不同的數開多個線程,每個線程根據數的大小睡眠,自然睡的時間越長的,數越大,哈哈,搞笑吧,這種演算法看起來很荒唐,但實際上很天才,它可以充分利用多核cpu進行計算。複製代碼 代碼如下:package mainimport ( "fmt" "time")func main()
Time of Update: 2017-01-18
本文執行個體講述了Go語言產生素數的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:package main// 產生2, 3, 4, ... 到 channel 'ch'中.func Generate(ch chan<- int) { for i := 2; ; i++ { ch <- i // Send 'i' to
Time of Update: 2017-01-18
本文執行個體講述了go語言異常panic和恢複recover用法。分享給大家供大家參考。具體分析如下:go中可以拋出一個panic的異常,然後在defer中通過recover捕獲這個異常,然後正常處理在一個主進程,多個go程處理邏輯的結構中,這個很重要,如果不用recover捕獲panic異常,會導致整個進程出錯中斷複製代碼 代碼如下:package mainimport "fmt"func main() {defer func() {
Time of Update: 2017-01-18
本文執行個體講述了go語言實現AES加密的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:package mainimport ("fmt""crypto/aes""strings")func main(){rb:=[]byte {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6};b:=make([]byte,16);strings.NewReader("1234567890123456").Read(b);// b=b[0:16];fmt.Print("b:"
Time of Update: 2017-01-18
本文執行個體講述了linux下通過go語言獲得系統進程cpu使用方式的方法。分享給大家供大家參考。具體分析如下:這段代碼通過linux的系統命令 ps來分析cpu的使用方式,代碼如下:複製代碼 代碼如下:package mainimport ( "bytes" "log" "os/exec" "strconv"
Time of Update: 2017-01-18
本文執行個體講述了GO語言Defer用法。分享給大家供大家參考。具體分析如下:defer:調用一個被 defer 的函數時在函數剛要返回之前順延強制,當函數無論怎樣返回,某資源必須釋放時,可用這種與眾不同、但有效處理方式。傳統的例子包括解鎖互斥或關閉檔案。這樣延遲一個函數有雙重優勢:一是你永遠不會忘記關閉檔案,此錯誤在你事後編輯函數添加一個返迴路徑時常常發生。二是關閉和開啟靠在一起,比放在函數尾要清晰很多。複製代碼 代碼如下:/** * Created with IntelliJ