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.基本数据类型

在这里插入图片描述

  • 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")
}
相关推荐
©️2020 CSDN 皮肤主题: 成长之路 设计师:Amelia_0503 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值