來自萌新的go初體驗

前言

Go,天生高併發支持,語法簡潔,佔用內存和CPU資源小。因此,學它!! 本文會簡單講明幾個點,會採用對比的理解方法。但願對新入門的寶貝萌有所幫助。node

從零開始

簡單構建一個main.go,執行 go run amin.go。git

注意事項:1.應用程序的執行入口是main()函數。 2. 嚴格區分大小寫。github

package main
import (
   "fmt"
)
func main(){
    fmt.Println("Hello World");
}
複製代碼

簡單熟悉main.go.下面的例子幫助你們更深一步瞭解。web

package main
import "fmt"
func main(){
    var countryCapitalMap map[string]string
    countryCaptialMap  = make(map[string]string
    countryCaptialMap["Paris"] ="巴黎"
    countryCaptialMap["Japan"] = "日本"
    countryCaptialMap["Italy"] = "意大利"
}
for country :=range countryCapitalMap{
    fmt.Println(country,"首都是",countryCapitalMap[)
}
複製代碼
  • var countryCapitalMap map[string]string聲明變量,至關於var,沒有分配空間。
  • make[key]value make的做用是分配空間。它有三種不一樣的用法。
  1. make(map[string]string)
  2. make([]int, 2)
  3. make([]int, 2, 4)
  • range:Go語言中range(範圍)的關鍵字用於for循環中迭代數組(array),切片(slice),通道(channe)或集合(map)的元素。

go語言的web框架 gin

package main
import "github.com/gin-gonic/gin"

func main(){
engine := gin.Default()
engine.GET("/", func(context *gin.Context) {
    context.String(http.StatusOK, "hello gin get method")
   })
   _ = engine.Run()
}
複製代碼

以上使用了一個很短的代碼實現了一個web服務。使用gin的Default方法建立一個路由。而後經過HTTP方法綁定路由規則和路由函數。不一樣於net/http庫的路由函數,gin進行了封裝,把request和response都封裝到gin.Context的上下文環境。下面是對代碼的詳解:express

  • "github.com/gin-gonic/gin" : 第三方模塊不少都是github.com開頭的

安裝命令:go get -u github.com/gin-gonic/ginapi

  • engine := gin.Default() 至關於const app=express() gin至關於express
  • engine.GET:添加GET請求,第一個是路徑,第二個是
  • context:上下文訪問的一個環境,分析請求以及造成一個返回。它至關於koa的ctx,至關於express的req+res。本次實例是採用*gin.Context的一個指針類型。
  • context.String表明着res.String(),返回一個字符串。
  • _ = engine.Run()至關於node裏的listen ,默認端口爲8080。也能夠本身修改_ = engine.Run(":3000")。_下劃線表示不處理,不管傳遞什麼都接受,萬能用法。

resetful

  • resetful 使用相對應的語義的請求動詞+語義化的url

POST

engine.POST("/", func(context *gin.Context) {
     context.String(http.StatusOK, "hello gin post method")
    })
    _ = engine.Run()
 }
複製代碼
  • POST請求是在保存數據的時候使用
  • /login POST 表示登陸
  • /post/1234 GET 讀某篇文章 id爲1234
  • /post POST 表示新增一篇文章
  • /post GET 表示獲取文章列表

PUT

engine.PUT("/", func(context *gin.Context) {
      context.String(http.StatusOK, "hello gin put method")
     })
     _ = engine.Run()
  }
複製代碼

put動詞常常會和post混淆,put和post都是用來保存數據,可是put是修改數據。好比在庫裏添加一條信息數組

{username:'meimei',hobbies:['賺錢','花錢']}
複製代碼

如果用post就是新增一個原來沒有的數據,如果put,則表示修改,整個的替換。併發

delete

就是表示刪除。例如:配合 /post/123 表示刪除某篇文章。app

PATCH

是用來更新局部。框架

HEAD

不在乎返回內容。做用:在不得到資源的狀況下,瞭解資源的信息。好比是否修改過?文件大小如何?文件是否存在?

它的位置在響應頭裏。

最後

  • 本文是做者總結與借鑑,如有錯誤或者意見,寶貝萌能夠在評論區留言。
  • 歡迎你們一塊兒學習交流。Pink~
相關文章
相關標籤/搜索