四、Golang基础数据类型

182 阅读2分钟

Golang的基本数据类型有 string、bool、int、float等外 还有 数组、切片、结构体、map、函数、通道(channel)

整形

整形为两个大类,int和uint,按长度分int又有 int8、int16、int32、uint 对应无符号分为uint8、uint16、uint32

类型

描述

uint8

无符号 8位整型 (0 到 255)

uint16

无符号 16位整型 (0 到 65535)

uint32

无符号 32位整型 (0 到 4294967295)

uint64

无符号 64位整型 (0 到 18446744073709551615)

int8

有符号 8位整型 (-128 到 127)

int16

有符号 16位整型 (-32768 到 32767)

int32

有符号 32位整型 (-2147483648 到 2147483647)

int64

有符号 64位整型 (-9223372036854775808 到 9223372036854775807)

浮点型

主要为了表示小数、也可细分float32和float64两种、float64提供比float32更高的精度

取值范围

类型

最大值

最小非负数

float32

3.402823466385288598117041834516925440e
+38

1.401298464324817070923729583289916131280e
-45

float64

1.797693134862315708145274237317043567981e
+308

4.940656458412465441765687928682213723651e
-324

布尔值

这个就语言之间比较统一了,分为true 和 false。

默认值为false、布尔值无法参与数值运算,无法与其他类型互转。

字符串

用双引号""或者``反引号来表示字符串,注意单引号不可以,go语言中单引号表示rune

var num string = `晚风`
name2 := "晚风啊"

//如果需要定义多行字符串的话 就需要反引号
var name string = `
   卡萨的风景阿里斯顿减肥啦睡觉的
    阿迪沙发上的减肥啦睡觉地方是否
`

字符串转意

Go 语言的字符串常见转义符包含回车、换行、单双引号、制表符等,如下表所示。

转义符

含义

\r

回车符(返回行首)

\n

换行符(直接跳到下一行的同列位置)

\t

制表符

\'

单引号

\"

双引号

\\

反斜杠

字符串常用操作

len() 获取字符串长度

var name string = "晚风"
fmt.Println(len(name))

字符串拼接

+号

name := "晚风"+"喜欢"
like := "钱"
fmt.Println(name+like)

fmt.Sprintf()

y := "2021"
m := "5"
text := fmt.Sprintf("今天是%d年%d月",y,m)

字符串分割 strings.Split()

str := "1,2,3,4,5"
text := strings.Split(str,",")
fmt.Println(text)

name:="12kslf,ewewe"
//判断字符串中是否包含某个值 返回布尔值
fmt.Println(strings.Contains(name,","))
//判断前缀
fmt.Println(strings.HasPrefix(name,"12"))
//判断后缀
fmt.Println(strings.HasSuffix(name,"we"))
//判断某个字符出现的位置
fmt.Println(strings.Index(name,"k"))
//拼接字符串
a := "hahaha"
b := "hehehe"
c := strings.Join([]string{a,b},",") 
fmt.Println(c)

字符串的常用操作

方法

介绍

len(str)

求长度

+或fmt.Sprintf

拼接字符串

strings.Split

分割

strings.contains

判断是否包含

strings.HasPrefix,strings.HasSuffix

前缀/后缀判断

strings.Index(),strings.LastIndex()

子串出现的位置

strings.Join(a[]string, sep string)

join操作