整型

整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64
其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int64对应C语言中的long型。
类型描述

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)

特殊整型

uint 32位操作系统上就是uint32,64位操作系统上就是uint64
int 32位操作系统上就是int32,64位操作系统上就是int64
uintptr 无符号整型,用于存放一个指针

浮点型


Go语言支持两种浮点型数:float32和float64。这两种浮点型数据格式遵循IEEE 754标准: float32 的浮点数的最大范围约为 3.4e38,可以使用常量定义:math.MaxFloat32。 float64 的浮点数的最大范围约为 1.8e308,可以使用一个常量定义:math.MaxFloat64。

  1. package main
  2. import (
  3. "fmt"
  4. "math"
  5. )
  6. func main() {
  7. fmt.Printf("%f\n", math.Pi)
  8. fmt.Printf("%.2f\n", math.Pi)
  9. }

布尔值

布尔型数据:true(真)和false(假)

  1. 布尔类型变量的默认值为false。
  2. Go 语言中不允许将整型强制转换为布尔型.
  3. 布尔型无法参与数值运算,也无法与其他类型进行转换。

字符串

字符串的值为双引号(“)中的内容

修改字符串

  1. //修改字符
  2. s5:="zhang"
  3. s6:=[]byte(s5)
  4. s6[0]='l'
  5. fmt.Println(string(s6))

字符串反转

  1. // "hello" --> "olleh" 字符串反转-------------------------------------
  2. //方法1
  3. z1:="hello"
  4. z2:=[]byte(z1)
  5. z3 :=""
  6. for i:=4; i>=0; i-- {
  7. //i 4 3 2 1 0
  8. //z2[i] o l l e h
  9. z3 = z3 + string(z2[i]) //102 --> h
  10. }
  11. fmt.Println(z3)
  12. zz1 := "hello"
  13. //方法2
  14. lentH:=len(zz1)
  15. for i:=0; i< lentH/2; i++ {
  16. zz1[i],zz1[lentH-1-i] = zz1[lentH-1-i] , zz1[i]
  17. }
  18. fmt.Println(string(zz1))

字符串转义符

\r 回车符(返回行首)
\n 换行符(直接跳到下一行的同列位置)
\t 制表符
\‘ 单引号
\“ 双引号
\\ 反斜杠

字符串常用操作

len(str) 求长度
+或fmt.Sprintf 拼接字符串
strings.Split 分割
strings.contains 判断是否包含
strings.HasPrefix,strings.HasSuffix 前缀/后缀判断
strings.Index(),strings.LastIndex() 子串出现的位置
strings.Join(a[]string, sep string) join操作

byte类型

  1. s1:="Golang"
  2. s2:='G' //ASSII占一个字节 (8位bit)
  3. fmt.Println(s1,s2)

runne类型

  1. c1:="中国"
  2. c2:='中' //UTF-8 中文占3字节
  3. fmt.Println(c1,c2)

类型转换

Go语言中只有强制类型转换,没有隐式类型转换。该语法只能在两个类型之间支持相互转换的时候使用。
强制类型转换的基本语法如下:
T(表达式)
其中,T表示要转换的类型。表达式包括变量、复杂算子和函数返回值等.