软件测试 | 测试开发 | Golang开发入门(一)
GO語言簡介
Go(又稱 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 開發的一種靜態強類型、編譯型語言。Go 語言語法與 C 相近,但功能上有:內存安全,GC(垃圾回收),結構形態及 CSP-style 并發計算。
與C++相比,Go并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數等功能,但增加了切片(Slice) 型、并發、管道、垃圾回收、接口(Interface)等特性的語言級支持。Go 2.0版本將支持泛型。
Go環境搭建
1、要搭建Go語言開發環境,我們第一步要下載go的開發工具包
安裝包下載地址為:https://golang.org/dl/
如果打不開可以使用這個地址:
golang.google.cn
Downloads - The Go Programming Language
打開之后根據自己的操作系統下載對應版本的安裝包。開發工具包又分為安裝版和壓縮版,安裝版的工具包雙擊打開會出現安裝向導,選擇安裝的路徑,會自動設置好環境變量等信息,用起來比較方便一些。這里選擇安裝版的工具包進行安裝。
2、安裝Go
①.雙擊運行安裝文件,然后設置安裝目錄,點擊開始安裝就可以了。使用安裝版的工具包安裝完成后會自動添加好GOPATH的環境變量,如果是使用壓縮版安裝的需要手動添加GOPATH(剛剛安裝的go路徑)環境變量,并且在PATH變量中添加;%USERPROFILE%\go\bin。
②.打開終端,輸入 go version 命令,顯示出當前go的版本就是安裝成功了。
③.安裝好go環境之后,就可以在命令行使用 go run 命令運行go腳本了。
GO重點語法
1、切片(Slice)
Go 語言切片是對數組的一種抽象
Go 數組的長度是不可以改變的,在特定場景中這樣的集合就不太適用,Go中提供了一種靈活,功能強悍的內置類型切片(“動態數組”),與數組相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大。
可以聲明一個未指定大小的數組來定義切片:var identifier type,或使用make()函數來創建切片:var slice1 type = make(type, len);也可以指定容量,其中capacity為可選參數。make(T, length,capacity)。
直接初始化切片,s := int {1,2,3 },表示是切片類型,{1,2,3}初始化值依次是1,2,3.其cap=len=3。
初始化切片s,是數組arr的引用,s := arr[startIndex:endIndex],將arr中從下標startIndex到endIndex-1 下的元素創建為一個新的切片。s := arr[startIndex:] ,默認endIndex時將表示一直到arr的最后一個元素。s:= arr[:endIndex] ,默認startIndex時將表示從arr的第一個元素開始。
切片是可索引的,并且可以由len() 方法獲取長度。由 cap() 方法可以測量切片最長可以達到多少。
2、指針
Go 語言的取地址符是&,放到一個變量前使用就會返回相應變量的內存地址。一個指針變量指向了一個值的內存地址。
varvar_name*var-typevar-type 為指針類型,var_name為指針變量名,* 號用于指定變量是作為一個指針。以下是有效的指針聲明:
varip*int /* 指向整型*/ varfp*float32 /* 指向浮點型 */首先,定義一個指針變量;然后,為指針變量賦值;賦值之后就可以訪問指針變量中指向地址的值。
func main() { var a int= 20 /* 聲明實際變量 */ varip *int /* 聲明指針變量 */ ip = &a /* 指針變量的存儲地址 */ fmt.Printf("a 變量的地址是: %x\n", &a )/* 指針變量的存儲地址 */ fmt.Printf("ip變量儲存的指針地址: %x\n", ip ) /* 使用指針訪問值 */ fmt.Printf("*ip變量的值: %d\n", *ip ) }當一個指針被定義后沒有分配到任何變量時,它的值為 nil。nil 指針也稱為空指針。
nil在概念上和其它語言的null、None、nil、NULL一樣,都指代零值或空值。
func main() { varptr *int fmt.Printf("ptr的值為 : %x\n", ptr ) }3、管道
管道(Channel)是Go語言中比較重要的部分,經常在Go中的并發中使用。
①.管道的定義
varchanNamechanElemType,這里ElemType是指此管道所傳遞的類型。也可以使用make()方法來定義管道,ch := make(chanint, 100),size可以省略
②.管道的一些操作
<-操作符可以由管道中讀寫數據,需要注意,<-操作符是與最左邊的chan優先結合的。
向管道中寫入一個數據,在此需要注意:向管道中寫入數據通常會導致程序阻塞,直到有其他goroutine從這個管道中讀取數據。
讀取數據時,需要注意:如果管道中沒有數據,那么從管道中讀取數據會導致程序阻塞,直到有數據。
關閉channel,直接調用close()即可, close(ch)。
判斷ch是否關閉可以使用,x, ok := <-ch,判斷ok的值,如果是false,則說明已經關閉(關閉的話讀取是不會阻塞的)。
var ch1 chan<- float64 // 只能向里面寫入float64的數據,不能讀取 var ch2 <-chanint // 只能讀取int型數據常用GO web框架
1
Beego
beego 是一個開源的Go應用HTTP 框架,他可以用來快速開發API、Web以及后端服務等各種應用。是一個完整的MVC框架,有自己的日志庫、ORM和Web框架。你不需要再去安裝第三方庫。它有一個稱為Bee Tool的內置工具,用于監視代碼更改,并在檢測到更改時運行任務。
2
Iris
Iris號稱是最快的Go后端web框架。支持http2,完備的MVC 支持。性能非常卓越,在眾多web框架中遙遙領先。另外iris提供的api都是極簡風格,很容易上手。支持中間件擴展,擁有豐富的中間件生態庫。擁有強大的路由功能,可以輕易的構建各種形式的RESTful API,路由分組、靜態路由、動態路徑參數化、通配符路由等待。還有http錯誤定義、上下文處理器、身份驗證、視圖模板、熱重啟、Websocket支持等等功能。
3
Buffalo
Buffalo是一個快速又簡單的web框架。當你開始一個新項目時,Buffalo可以為你提供一切——從前端到后端開發。Buffalo不僅僅是一個框架——它也是一個整體的Web開發生態系統,可以讓你直接構建應用程序。
另外還有很多Go的開源框架,例如:Goji、Martini、Gin Gonic、Gocraft等,大家可以根據自己的實際應用和不同框架的特性來進行選擇。
本次分享主要對Golang的簡介,后續和大家分享如何用Golang開發簡單網站。
總結
以上是生活随笔為你收集整理的软件测试 | 测试开发 | Golang开发入门(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: firebird java_JAVA连接
- 下一篇: 前端html生成图片,HTML5 Can