0
点赞
收藏
分享

微信扫一扫

GO 学习笔记——第一天 / 类型,流程控制

1.常量和变量

  • 变量
  • 概念:变量就是程序运行期间可以改变的量
  • 声明: var a int
  • 注意:局部变量声明后一定要使用,不然报declared and not used
  • 赋值: a = 10
  • 初始化: var a int = 10
  • 自动推导类型: a := 10
  • 区别:
package main

import "fmt"

func main() {
//初始化
var a int = 10
//赋值
a = 20
//自动推导
b := 30
//输出
fmt.Println(a, b)
}
  • 多重赋值: a , b , c := 10 , 20 , 30
  • 两值交换: a , b = b , a
  • 匿名变量:a , _ = b , a
  • 常量
  • 概念:程序运行期间不可更改的量
  • 声明:const a int
  • 自动推导:const a = 10
  • iota枚举
  • 概念:常量自动生成器,每隔一行自动+1
  • 注意:iota遇到const自动重置为0,如果同一行,值一样

2.基本数据类型

GO 学习笔记——第一天 / 类型,流程控制_初始化

  • bool初始值为false
  • float64比float32存储更准确
  • 以反斜杠\开头的字符为转义字符
  • 内建函数
  • len() : 求长度
  • 字符串的取值:str[x]
  • 复合类型内建函数
  • 取实:real()
  • 取虚:imag()

3.fmt包的格式化输入和输出

  • 格式化:fmt.Print(“print = %d\n”,a)
  • 输出:fmt.Print
  • 输入:fmt.Scan

4.类型转换和别名

  • 部分数据类型不能相互转换
  • 类型别名相当重要
  • 关键字 type
package main

import "fmt"

func main() {

//别名为bigInt
type bigInt int64

var a bigInt

a = 10

fmt.Println(a)

}

5.运算符

  • 正常的运算

6.流程控制(选择,循环)

  • 判断
  • GO语言的switch默认每隔case都携带break,匹配成功后将不会执行下面的语句,但是可使用fallthrough强制执行,并且后面的无条件执行,他同样也支持初始化
package main

import "fmt"

func main() {

a, b := 1, 2
//选择
if a > b {
fmt.Println(">")
} else {
fmt.Println("<")
}

//支持初始化
if c := 10; c > a {
fmt.Println(">")
} else {
fmt.Println("<")
}

//多分支
if a == 0 {
fmt.Println("0")
} else if a == 1 {
fmt.Println("1")
} else {
fmt.Println("-1")
}

//选择
switch a {
case 0:
fmt.Println("0")
case 1:
fmt.Println("1")
case 2:
fmt.Println("2")
case 3,4,5:
fmt.Println(" 3 4 5 ")
case a > 10:
fmt.Println(">")
default:
fmt.Println("-1")
break
}

//fallthroug 强制执行
}
  • 循环
  • 关键字 for ,唯一的循环方式
package main

import "fmt"

func main() {

sum := 0
//计算0-99的总和
for i := 0; i < 100; i++ {
sum = sum + i
}
fmt.Println("sum:", sum)

//迭代
a := "Hello"
for i := 0; i < len(a); i++ {
fmt.Println("a:", a[i])
}

//返回两个参数 一个下标 一个值
for i, data := range a {
fmt.Println("i:", i, "data:", data)
}
}
  • break:跳出最近的内循环
  • continue:跳出本次循环
  • goto可以使用在任何地方,但是不能跨函数
package main

import "fmt"

func main() {

fmt.Println("1")
goto End
fmt.Println("2")
End:
fmt.Println("3")
}

举报

相关推荐

0 条评论