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>


让我们一起进步学习,共同成长;欢迎大家关注公众号:芝麻技术栈


分享到:


相關文章: