前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go通关02:必须掌握的基础类型

Go通关02:必须掌握的基础类型

作者头像
微客鸟窝
发布2021-08-18 15:17:13
2250
发布2021-08-18 15:17:13
举报
文章被收录于专栏:Go语言指北

变量声明

  1. var 变量名 类型 = 表达式 var i int = 10
  2. 类型推导 var i = 10 可以根据值的类型来省略变量类型
  3. 声明多个变量
代码语言:javascript
复制
var (
  i int = 0
  k int = 1
)
// 同理类型推导
var (
  i = 0
  k = 1
)

类型int/float64/bool/string 等基础类型都可以被自动推导。

整型

在 Go 语言中,整型分为:

  • 有符号整型:int、int8、int16、int32、int64
  • 无符号整型:uint、uint8、uint16、uint32、uint64

注意:

  1. 有符号整型可以表示负数、零、正数,而无符号整型只能为零和正数。
  2. int 和 uint 这两个没有具体的 bit 大小的整型,他们大小可能是32bit,也可能是64bit,这个取决于硬件设备CPU。
  3. 在整型中,如果能确定int的bit就使用明确的int类型,这样有助于程序的移植性。
  4. 还有一种字节类型 byte,它其实等价于 uint8,可以理解为 uint8 类型的别名,用于定义一个字节,所以字节byte类型也属于整型。

浮点数

浮点数就是含有小数的数字,Go语言中提供了两种精度的浮点数:float32、float64。因为 float64 精度高,浮点计算结果比 float误差要更小,所以它更被常使用。

布尔型

  • 一个布尔值值只有两种:true 和 false。
  • 定义使用:var bf bool = false;使用 bool 关键字定义

字符串

字符串通过类型 string 声明

代码语言:javascript
复制
var s1 string = "hello"
var s2 = "world" //类型推导
var s3 = s1 + s2 //可以通过操作符 + 把字符串串连起来
s1 += s2 //也可以通过 += 运算符操作

零值 零值其实就是一个变量的默认值,Go语言中,如果只声明了一个变量,并没有对其赋值,那么此变量会有一个对应类型的零值。

var b bool // bool型零值是false var s string // string的零值是"" 以下六种类型零值常量都是nil var a *int var a []int var a map[string] int var a chan int var a func(string) int var a error // error是接口

变量的简短声明

变量名:=表达式在实际项目中,如果能为声明的变量初始化,那么就使用简短的声明方式,这种也是使用最多的。

指针

Go 语言中,指针对应的是变量在内存中存储的位置,也就是说指针的值就是遍历的内存地址。通过 & 可以获取变量的地址,也就是指针。*可以获取地址对应的值。

代码语言:javascript
复制
pi:=&i
fmt.Println(*pi)

常量

常量的值是在编译期就确定好的,确定后不能被修改,可以防止在运行期被恶意篡改。

常量定义

和变量类型,只不过使用关键字 const

const name = "无尘"

在 Go语言中,只允许布尔型、字符串、数字类型这些基础类型作为常量。

iota

iota 是一个常量生成器,可以用来初始化相似规则的常量,避免重复的初始化。

代码语言:javascript
复制
const (
  one = 1
  two = 2
  three = 3
)

//使用 iota
const (
  one = iota+1
  two
  three
)

iota 的初始值是0。

字符串

  1. 字符串和数字互换

Go是强类型语言,不同类型的变量是不能相互使用和计算的。不同类型的变量在进行复制或计算时,需要先进行类型转换。

代码语言:javascript
复制
i := 10
itos := strconv.Itoa(i)
stoi,err := strconv.Atoi(itos)
fmt.Println(itos,stoi,err) //10 10 nil
  1. String 包

string 包是Go SDK提供的一个标准包。用于处理字符串的工具包。包含查找字符串、拆分字符串、去除字符串的空格、判断字符串是否含有某个前缀或后缀。

代码语言:javascript
复制
//判断s1的前缀是否是H
fmt.Println(strings.HasPrefix(s1,"H"))
//在s1中查找字符串o
fmt.Println(strings.Index(s1,"o"))
//把s1全部转为大写
fmt.Println(strings.ToUpper(s1))

更多例子,可以查看 string文档


有什么问题,可以留言或加我微信交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微客鸟窝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 整型
  • 浮点数
  • 布尔型
  • 字符串
  • 变量的简短声明
  • 指针
  • 常量
    • 常量定义
    • iota
    • 字符串
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档