(三)Go----变/常量,作用域,类型(字符串,字符,指针,索引,枚举)

本文详细介绍了Go语言中的变量声明、常量定义、作用域规则,以及布尔、数值、字符、字符串、指针、枚举等常用类型的特性和用法,包括变量的简短声明、包级别变量、匿名变量,常量的命名和初始化,作用域的概念,以及不同类型之间的转换和比较。此外,还探讨了UTF-8和Unicode的区别,字符串的遍历和切片,以及指针的创建和使用。
摘要由CSDN通过智能技术生成

一. 变量

声明用: var

规则

  1. 必须由非空的unicode字符串组成
  2. 不能以数字开头
  3. 不能为go关键字(25个)
  4. 避免和go预定义标识符冲突
  5. 驼峰命名法
  6. 区分大小写
  7. 定义之后必须使用
  8. 一次性定义多个变量(用“逗号”隔开)
  9. 可以直接在定义时直接赋值
  10. 不能重复声明可以重复赋值

方式一:定义一个变量

	  变量名	   类型
var   name     string

方式二:定义多个变量

	  变量名	        类型
var   name1,name2   string

方式:定义不同类型的变量

	  变量名	   类型
var (
	age int = 20
	height float64 = 1.78
	sex	string ="男"
)

在这里插入图片描述

简短类型声明

有个冒号 :
只能在函数里面

isHello:=true

#一次赋值多个
bb,aa := true,false
#将他们的值互换
aa,bb =bb,aa

在这里插入图片描述
互换
在这里插入图片描述

包级别的变量

包级别的函数----在函数外
在这里插入图片描述

匿名变量

匿名变量,优点有三:

不分配内存,不占用内存空间

不需要你为命名无用的变量名而纠结

多次声明不会有任何问题

通常我们用匿名接收必须接收,但是又不会用到的值。

func GetData() (int, int) {
   
    return 100, 200
}
func main(){
   
    a, _ := GetData()
    _, b := GetData()
    fmt.Println(a, b)
}

二. 常量const

  1. 不可变可以定义在函数外
  2. 也必须被调用
  3. 命名—全大写
  4. 多个相同的常量可以省略,类型和赋值
const NAME string = "hello"

多个类型相同

const NAME,AGE string ="qcq","ly"

多个类型不同

const (
	NAME string ="hello"
	AGE int =20
	HEIGHT float64 = 1.78
)

在这里插入图片描述
多个相同的常量可以省略,类型和赋值
在这里插入图片描述

三. 作用域

  1. 定义变量,标识符可以使用的范围
  2. { } 来定义 作用域的范围,可以嵌套
  3. 语句块内可以使用语句块外的
  4. 使用规则:子语句可以使用父语句块
  5. 相同的名称,会在子语句覆盖,而其他不变

在这里插入图片描述

四. 常用类型

1. 布尔类型

  1. bool
  2. 只有两个值true,false
  3. 零值 false

而在 Go 中,真值用 true 表示,不但不与 1 相等,并且更加严格,不同类型无法进行比较,而假值用 false 表示,同样与 0 无法比较

如下图所示,Goland 直接波浪线提示类型不匹配,不能比较。

在这里插入图片描述

Go 中确实不如 Python 那样灵活,bool 与 int 不能直接转换,如果要转换,需要你自己实现函数。

bool 转 int

func bool2int(b bool) int {
   
    if b {
   
        return 1
    }
    return 0
}

int 转 bool

func int2bool(i int) bool {
   
    return i != 0
}

在 Python 中使用 not 对逻辑值取反,而 Go 中使用 ! 符号

import "fmt"

var male bool = true
func main()  {
   
    fmt.Println( !male 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值