Go 語言是一個試圖結(jié)合動態(tài)類型和靜態(tài)類型,編譯效率和安全性以及語言的易用性等眾多特性與一體的一種嘗試。他的另一個目標(biāo)是支持現(xiàn)代的基于網(wǎng)絡(luò)的、基于多核的計(jì)算。最后,Go 還是非??斓?,他可以在單個計(jì)算機(jī)上僅僅花費(fèi)幾秒時間構(gòu)建一個龐大的應(yīng)用程序。使用GO語言開發(fā)android語言步驟如下:
舟山網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
1. 下載安裝Go語言(版本1.5+)
Golang鏈接
回到頂部
2. 下載安裝 gomobile
下載
$ go get golang.org/x/mobile/cmd/gomobile
安裝(需要等待幾分鐘)
gomobile init
回到頂部
3. Golang開發(fā)手機(jī)應(yīng)用有兩種方式
a. 原生應(yīng)用開發(fā)
$ go get -d golang.org/x/mobile/example/basic
主要應(yīng)用領(lǐng)域:
應(yīng)用控制管理與配置
OpenGL ES 2 綁定
Asset 管理
Event 管理
試驗(yàn)中的包,含有OpenAL 綁定、音頻、字體、圖形以及運(yùn)動傳感器
Android開發(fā)
$ gomobile build -target=android golang.org/x/mobile/example/basic
此命令會生成名為basic的apk安裝包
$ gomobile install golang.org/x/mobile/example/basic
此命令將安裝apk包到已連接的android設(shè)備
Java教程
Linux入門
更多
首頁
?
Go語言WEB框架(Gin)詳解
在 Go語言開發(fā)的 Web 框架中,有兩款著名 Web 框架分別是 Martini 和 Gin,兩款 Web 框架相比較的話,Gin 自己說它比 Martini 要強(qiáng)很多。
Gin 是 Go語言寫的一個 web 框架,它具有運(yùn)行速度快,分組的路由器,良好的崩潰捕獲和錯誤處理,非常好的支持中間件和 json。總之在 Go語言開發(fā)領(lǐng)域是一款值得好好研究的 Web 框架,開源網(wǎng)址:
首先下載安裝 gin 包:
go get -u github.com/gin-gonic/gin
一個簡單的例子:
package main
import "github.com/gin-gonic/gin"
func main() {
//Default返回一個默認(rèn)的路由引擎
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
//輸出json結(jié)果給調(diào)用方
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // listen and serve on 0.0.0.0:8080
}
編譯運(yùn)行程序,打開瀏覽器,訪問頁面顯示:
{"message":"pong"}
gin 的功能不只是簡單輸出 Json 數(shù)據(jù)。它是一個輕量級的 WEB 框架,支持 RestFull 風(fēng)格 API,支持 GET,POST,PUT,PATCH,DELETE,OPTIONS 等 http 方法,支持文件上傳,分組路由,Multipart/Urlencoded FORM,以及支持 JsonP,參數(shù)處理等等功能,這些都和 WEB 緊密相關(guān),通過提供這些功能,使開發(fā)人員更方便地處理 WEB 業(yè)務(wù)。
Gin 實(shí)際應(yīng)用
接下來使用 Gin 作為框架來搭建一個擁有靜態(tài)資源站點(diǎn),動態(tài) WEB 站點(diǎn),以及 RESTFull API 接口站點(diǎn)(可專門作為手機(jī) APP 應(yīng)用提供服務(wù)使用)組成的,亦可根據(jù)情況分拆這套系統(tǒng),每種功能獨(dú)立出來單獨(dú)提供服務(wù)。
下面按照一套系統(tǒng)但采用分站點(diǎn)來說明,首先是整個系統(tǒng)的目錄結(jié)構(gòu),website 目錄下面 static 是資源類文件,為靜態(tài)資源站點(diǎn)專用;photo 目錄是 UGC 上傳圖片目錄,tpl 是動態(tài)站點(diǎn)的模板。
當(dāng)然這個目錄結(jié)構(gòu)是一種約定,可以根據(jù)情況來修改。整個項(xiàng)目已經(jīng)開源,可以訪問來詳細(xì)了解:具體每個站點(diǎn)的功能怎么實(shí)現(xiàn)呢?請看下面有關(guān)每個功能的講述:
靜態(tài)資源站點(diǎn)
一般網(wǎng)站開發(fā)中,我們會考慮把 js,css,以及資源圖片放在一起,作為靜態(tài)站點(diǎn)部署在 CDN,提升響應(yīng)速度。采用 Gin 實(shí)現(xiàn)起來非常簡單,當(dāng)然也可以使用 net/http 包輕松實(shí)現(xiàn),但使用 Gin 會更方便。
不管怎么樣,使用 Go 開發(fā),我們可以不用花太多時間在 WEB 服務(wù)環(huán)境搭建上,程序啟動就直接可以提供 WEB 服務(wù)了。
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
// 靜態(tài)資源加載,本例為css,js以及資源圖片
router.StaticFS("/public", http.Dir("D:/goproject/src/github.com/ffhelicopter/tmm/website/static"))
router.StaticFile("/favicon.ico", "./resources/favicon.ico")
// Listen and serve on 0.0.0.0:80
router.Run(":80")
}
首先需要是生成一個 Engine,這是 gin 的核心,默認(rèn)帶有 Logger 和 Recovery 兩個中間件。
router := gin.Default()
StaticFile 是加載單個文件,而 StaticFS 是加載一個完整的目錄資源:
func (group *RouterGroup) StaticFile(relativePath, filepath string) IRoutes
func (group *RouterGroup) StaticFS(relativePath string, fs http.FileSystem) IRoutes
這些目錄下資源是可以隨時更新,而不用重新啟動程序?,F(xiàn)在編譯運(yùn)行程序,靜態(tài)站點(diǎn)就可以正常訪問了。
go語言之所以能成為我國最火的語言,是因?yàn)榫帉懛?wù)端高并發(fā)程序的優(yōu)勢。我大中華區(qū)但凡pv,日活高點(diǎn)的網(wǎng)站,應(yīng)用,誰沒點(diǎn)這個需求。這個領(lǐng)域中最優(yōu)的幾個:golang,erlang,rust。日常生活中人類社交是當(dāng)今社會上的必然性,人們也伴隨著科技時代的發(fā)展,智能電子產(chǎn)品的使用中也必然少不了語言輸入,文字的編輯,語言轉(zhuǎn)換的便利都均可來源于go語音輸入法。
國內(nèi)大學(xué)本科教育,哪個學(xué)校不以c/c++為入門教學(xué)語言。都十幾年了,譚浩強(qiáng)還在大賣。語法相近的語言總是學(xué)習(xí)和使用成本最低的。這一點(diǎn)非常重要。coursera上有一門程序設(shè)計(jì)語言理論課上,開篇就闡述了這一點(diǎn)的重要性。假設(shè)go的入門成本是一個月,erlang的入門成本是2個月,那么整個程序員群體在學(xué)習(xí)后者的付出成本就很可觀了。
google由于眾所周知的原因,在國內(nèi)程序員中不一般的地位。golang有個好背景。
go語言之前一直都沒有接受待見,如今廣大的群眾開始接待,因?yàn)轵v訊服務(wù)器段代碼編譯是支持go語言的
go語言會成為主流也是一個問題,
多慮了,沒有競爭來關(guān)系。
雖然go成為源了世界上最并發(fā)的語言,這并不妨礙php成為世界上最好的語言,
也不妨礙java成為世界上最有模式的語言,
更不會妨礙c++成為21天就能學(xué)會了的語言。為什么Go語言如此不受待見
其實(shí)并沒有不受待見,用的人還是很多的,解決一些特定領(lǐng)域的問題也很方便。
每種語言的流行程度主要取決于這個語言最著名的killerapp的流行程度,C有Linux,Go有Docker。