日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在golang编程中总结的基础语法及常见的问题

發(fā)布時間:2025/3/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在golang编程中总结的基础语法及常见的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


寫下,自己在用golang開發(fā)中,用到的東西,有啥寫啥。


今個就寫下golang中的控制語句 ?if ?else、for、switch、goto,這幾個方面。


if 判斷對比


package main import "fmt" func main(){fmt.Printf("hello world\n")if a:=5;a>2 {fmt.Printf("a >2")}else{fmt.Printf("a<2")} }


for 循環(huán)

這里可以直接賦值


for i, j := 1, 10; i < j; i,j=i+1,j+1 { //死循環(huán)fmt.Println(i) }


完整的例子


package main import "fmt" func main(){fmt.Printf("hello world\n")if a:=5;a>2 {fmt.Printf("a >2")}else{fmt.Printf("a<2")}stra:="111"for i:=0; i< len(stra); i++ {fmt.Println(i)} }


如果想實現(xiàn)死循環(huán),很簡單,直接


for{go rui()}


這里在看看switch的用法,學(xué)過語言的人都知道的。


package main import "fmt" func main(){fmt.Printf("hello world\n")if a:=5;a>2 {fmt.Printf("a >2")} else{fmt.Printf("a<2")}stra:="111"for i:=0; i< len(stra); i++ {fmt.Println(i)} //這里是switchch:="unix"var cl stringswitch ch {case "mac":cl = "mac"case "linux":cl = "linux"case "unix":cl= "unix"}fmt.Println(cl) }


對于判斷是可以寫更復(fù)雜的

用if實現(xiàn):

kk := 0 bb := 9 if 0 <= kk && bb <= 9 {fmt.Println("zhenghao") }

用switch實現(xiàn)


oo := 11switch {case 0<3 && oo <= 9:fmt.Println("and")case (1 <= 0 && 2 <= 2) || ('A' <= 'A' && 'Z' <= 'Z'):fmt.Println("fei")default:cl = "Other Char" }


還有一個goto,是個在自定義標(biāo)簽中跳轉(zhuǎn)用的

func good(){i := 0xiaorui: //同其它語言也是以冒號結(jié)束作為標(biāo)簽println(i)i++goto xiaorui //跳轉(zhuǎn)到xiaorui去}


數(shù)組其實用的不多,這里就一筆帶過,貌似更多的人在用切片slices ?


var a [5]intfmt.Println("emp:", a)a[4] = 100fmt.Println("set:", a)fmt.Println("get:", a[4])fmt.Println("len:", len(a))


slice是一個指針而不是值。


slice就是“動態(tài)的數(shù)組”,傳值的時候他也是拷貝賦值,只是他拷貝的是內(nèi)存地址,是傳遞指針的。slice總是指向一個底層的array,slice聲明也像array一樣,只是不需要長度。


切片中有兩個概念:一是len長度,二是cap容量,長度是指已經(jīng)被賦過值的最大下標(biāo)+1,可通過內(nèi)置函數(shù)len()獲得。容量是指切片目前可容納的最多元素個數(shù),可通過內(nèi)置函數(shù)cap()獲得。切片是引用類型,因此在當(dāng)傳遞切片時將引用同一指針,修改值將會影響其他的對象。


a := []int{1, 2, 3, 4, 5} s1 := a[2:5] s2 := a[1:3] fmt.Println(s1, s2) s2 = append(s2, 1, 2, 2, 3, 3, 4, 5) s1[0] = 9 fmt.Println(s1, s2) s2 = append(s2,11,22,33) fmt.Println(s2) aa := []string{"aa","bb","xiaorui.cc"} aa = append(aa,"this is rfyiamcool.blog.51cto.com") fmt.Println(aa)


map結(jié)構(gòu)也經(jīng)常常用,它和python中的dict 幾乎一模一樣,是一個key-value的hash結(jié)構(gòu)。key可以是除了func類型,array,slice,map類型之外的類型。



它的使用也是非常簡單


m:=map[string]string{}


m["key1"] = "val1"


map結(jié)構(gòu)和slice是一樣的,是一個指針。賦值的時候是將指針復(fù)制給新的變量


map的增刪改查操作是這樣的:


package main import("fmt" ) func main() {m := map[string]string{"key1":"val1"}fmt.Println(m)m["key2"] = "val2"fmt.Println(m)p := m["key1"]fmt.Println(p)delete(m, "key1")fmt.Println(m) }


今天就這樣了,有時間再寫


總結(jié)

以上是生活随笔為你收集整理的在golang编程中总结的基础语法及常见的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。