GO基礎知識(一)變量聲明、數據類型、流程控制和for循環

​一、GO語言基本語法

三、if else switch流程控制

四、for循環和for range遍歷

變量的聲明:var 變量名 變量類型 ;變量的賦值,同其他語言一樣,"="號右端賦值即可;

<code>var name string  //單變量聲明
var (   //批量聲明
name string
age int)
var name string = "xiaoming"
var name = "xiaoming" //可以簡寫,GO會自動推導猜測name的類型
var name,age = "xiaoming",18 /<code>

聲明在函數外部的變量稱之為全局變量;

聲明在函數內部的變量稱之為局部變量;

局部變量一般使用簡短聲明,聲明以後必須使用,否則報錯;

<code>name := string  //局部變量可以簡短聲明省去var關鍵/<code>

匿名變量在接收不關心的賦值時,非常有用,比如在處理多返回值的函數

<code>for _,v := range mapdata{
fmt.Println(v)
}/<code>
<code>const p = 3
const (
p = 3    
\t\t s = 5
)
const (

p1 = 3    
p2 //如果在常量聲明中未指定值,則它的值和上面一樣等於3   
p3  //同上
)/<code>

在常量const的聲明中可以使用關鍵字iota,常用在枚舉中;當const關鍵字出現的時候,它的值將會被初始化為0,每新增一行常量聲明iota對應的值+1

<code>const (  
p1 = iota //0
p2 //1 
_     // "_"可以跳過聲明
p3 //3
p4 = 999 //999
p5 = iota //5
)/<code>

GO中的簡單數據類型

  • 字符串字符串底層是一個byte數組,字符串的長度就是byte數組的長度;而一個rune字符佔用多個byte
<code>teststring := "I我是"  
fmt.Println("長度是",len(teststring))
//這種方式遍歷,是打印不出來中文的
for i:=0;i fmt.Printf("%d-%c",i,teststring[i])
}  
//正確的遍歷方式這樣,或者強轉為[]rune按切片處理
for k,v:= range teststring{
fmt.Printf("%d-%c",k,v)
}
/<code>
  • 整型 int8、int16、int32、int64對應的無符號整型:uint8、uint16、uint32、uint64int 具體看操作系統,如果是64位,則為int64,反之int32uint 具體看操作系統,如果是64位,則為uint64,反之uint32
  • 浮點型 float32 float64
  • 布爾值
  • byte字節 type byte = uint8 ; uint8 的別名就是byte
  • runeUTF-8字符 type rune = int32 佔用1~4字節


GO中的類型之間的轉換:強制轉換 T(變量) 和 strconv

GO中的流程控制 if for switch goto

<code>//if else基本使用  
age := 35
if age<18{
fmt.Println("未成年")
}else if age>=18&&age<35{
fmt.Println("青年")
}else{
fmt.Println("中老年")
}/<code>
<code>/**  
for 初始語句;條件表達式;結束語句{
\t\t\t\t循環體
}
死循環體 for{
\t\t\t\t循環體

} */
for i:=0;i<10;i++{
if i==4{
continue //直接繼續下次循環
}
fmt.Println(i)
if i==8{
break //跳出當前層級循環
}
}/<code>

除了普通的for循環外,還要比較重要的for range,通常用來操作

  • 字符串(index,value)
  • 數組(index,value)
  • 切片(index,value)
  • map(key,value)
  • chan(value)

這裡先不舉例,後面講到具體的再展示示例。

<code>// switch demo展示  
n1:=2
switch n1 {
case 1:
fmt.Println("1")
case 2,3:
fmt.Println("2,3")
default:
fmt.Println("default")
}/<code>

goto用來進行代碼跳轉,略過後面的執行邏輯,直接執行goto代碼塊,通常用來快速跳出多層循環。

<code>  if true{    
fmt.Println("1")
goto gotoTagName
fmt.Println("2") //不被執行
}
gotoTagName:  
\t\tfmt.Println("I am goto")/<code>


讓我們一起進步學習,共同成長;歡迎大家關注公眾號:芝麻技術棧


分享到:


相關文章: