日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
一文搞懂Go常用語法

前言

本文是根據(jù)陽哥 知識(shí)星球中的資料 整理的學(xué)習(xí)筆記,第一章關(guān)于Go語言中常見的語法現(xiàn)象。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、東莞ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的東莞網(wǎng)站制作公司

我的思考:

一門語言中的語法都是固定的,基礎(chǔ)語法幾乎都差不多,本篇文章涉及到 Go 入門腳本,變量,條件語句,函數(shù)等語法現(xiàn)象,用一篇文章梳理Go語言中可能出現(xiàn)的所有語言現(xiàn)象,便于初學(xué)者學(xué)習(xí)和復(fù)習(xí)所用。

一. Go 語言的 helloworld

源文件:

文件名:hello.go

package main

import "fmt"

func main() {
fmt.Println("helloworld")

}

對(duì)于第一個(gè)代碼的解釋:

  • 源文件使用 UTF-8 編碼,對(duì) Unicode 支持良好,每個(gè)源文件都屬于包的一部分,在文件頭部用 package 聲明所屬的包名稱。
  • 以.go 作為文件的拓展名
  • 相比其他語言,語句結(jié)束的分號(hào)會(huì)被默認(rèn)省略
  • import 是用來導(dǎo)入標(biāo)準(zhǔn)庫或者第三方包

其他注意事項(xiàng):

  • fmt.Println? 這里的 Println 的p 要大寫;
  • 導(dǎo)入的包,如果有多余的可以刪掉

可以直接運(yùn)行:

go run main.go

二. 變量

Go 語言中使用 var 定義變量,支持類型推斷

1.定義兩個(gè)變量并輸出

package main

import "fmt"

func main() {
var x int32
var y = "hello,world"
fmt.Println("輸出的結(jié)果為", x,y)
}

輸出結(jié)果:

PS C:\Go\src\test01> Go run .\variable.Go
輸出的結(jié)果為 0 hello,world

注意點(diǎn):

  • 編譯器會(huì)把變量的初始值初始化為零,避免出現(xiàn)意外
  • Printf? 和Pringln 是有區(qū)別的,不能通用。

在函數(shù)內(nèi)部,可以省略 var 關(guān)鍵字,但要注意賦值符號(hào)的變化:由 = 變成了 :=

package main

import "fmt"

func main() {
y := "hello,world"
fmt.Println("輸出的結(jié)果為",y)
}

三. 表達(dá)式

Go 語言有三種流程控制語句

3.1 if 語句

package main

func main () {
var x = 100
if x >0 {
println("x =",x)
}else if x < 0 {
println("x =",-x)
}else{
println("x =",0)
}
}

3.2 switch 語句

package main

func main () {
x :=100
switch {
case x>0:
println("x")
case x<0:
println("-x")
//case x!=0:
// println("0")
case x == 0:
println("0")
default:
println("0")
}
}

這里需要注意一點(diǎn):

  • x=0?表示賦值,x==0 表示 ```等于``.

所以在這個(gè) case 語句中, case x=0:? 會(huì)報(bào)錯(cuò),但可以改為!= 不等于 0

執(zhí)行結(jié)果:

3.3 for 語句

for 循環(huán)的用法比較多,我們來舉幾個(gè)例子:

案例一:
package main

func main () {
//打印0 1 2 3 4
for i:=0 ;i<5;i++{
println(i)
}

//打印 4 3 2 1 0
for i :=4;i>=0 ;i--{
println(i)
}
}

下面的 for 循環(huán),類似于 while 循環(huán)的例子,比如while(x <5 {})

案例二:
package main

func main () {
x :=0
//打印0 1 2 3 4
for x<5{
println(x)
x++
}
}

案例三:打印從 10 到 0 的值

package main

func main () {
x :=10
for {
println(x)
x--
if x < 0{
break
}
}
}

案例四:

有時(shí)候也會(huì)對(duì)列表進(jìn)行遍歷,列表定義:x:= []int{100,101,102}

package main

func main () {

x :=[]int{100,101,102}
for i,n :=range x {
println(i,n)
}
}

在 Go 語言中,遍歷數(shù)據(jù)或切片時(shí)可以用 range,range 會(huì)產(chǎn)生兩個(gè)值,分別是數(shù)據(jù)的索引與值,就像案例四中,i和v分別表示索引和值:

索引為 0 的時(shí)候值是 100

運(yùn)行結(jié)果:

四. 函數(shù)

函數(shù)可以定義多個(gè)返回值,甚至對(duì)其命名

package main

import (
"errors"
"fmt"
)

func div(a,b int) (int,error) {
if b == 0 {
return 0,errors.New("division by zero")

}
return a/b,nil
}

func main(){
a,b := 9,2 //定義多個(gè)變量
c,err := div(a,b) //接收多個(gè)值
fmt.Println(c,err)
fmt.Println(a,b)
}

這里遇到一個(gè)小插曲,如下圖:

發(fā)現(xiàn)代碼會(huì)提示 b 沒有定義,在a/b位置有下劃線,但執(zhí)行結(jié)果是對(duì)的。經(jīng)過反復(fù)排查和溝通,最后發(fā)現(xiàn)是 SDK 沒有配置

沐風(fēng)曉月感謝星球群里各位幫助過我的小伙伴。

五. 數(shù)據(jù)

5.1 切片

切片可以實(shí)現(xiàn)類似動(dòng)態(tài)數(shù)組的功能:

package main

import(
"fmt"
)

func main() {
x := make([]int ,0,5) //創(chuàng)建容量為5的切片
for i :=0;i<10;i++{
x=append(x,i) //追加數(shù)據(jù),如果超過容量,自動(dòng)分配更大空間
}
fmt.Println(x)
}

輸出結(jié)果:

[0 1 2 3 4 5 6 7 8 9]

5.2 字典

package main

import "fmt"

func main() {
m:=make(map[string]int) //創(chuàng)建字典類型對(duì)象
m["a"] =1
x,ok := m["b"]
fmt.Println(x,ok)
y,ok := m["a"]
fmt.Println(y,ok)

}

運(yùn)行結(jié)果:

總結(jié)

本文后續(xù)還會(huì)持續(xù)增加一些語法現(xiàn)象,歡迎大家收藏備用。

本文轉(zhuǎn)載自微信公眾號(hào)「 程序員升級(jí)打怪之旅」,作者「王中陽Go」,可以通過以下二維碼關(guān)注。

轉(zhuǎn)載本文請(qǐng)聯(lián)系「 程序員升級(jí)打怪之旅」公眾號(hào)。


分享名稱:一文搞懂Go常用語法
URL網(wǎng)址:http://www.5511xx.com/article/cogsohj.html