Go语言学习笔记之基本数据类型

来源:互联网 发布:在线查询域名被墙 编辑:程序博客网 时间:2024/05/16 12:36

数据类型

在Go语言中,大致有以下几种数据类型:

  • 布尔类型(bool)
  • 整型(int,int8,int16,int32,int64)
  • 浮点型(float32,float64)
  • 复数类型(complex64)
  • 字符串(string)
  • 字符类型(byte)
  • 数组
  • 数组切片
  • map
  • 等等

布尔类型

定义布尔类型使用关键字bool,预定义值为truefalse

var v1 boolv1 = truev2 := (1 == 3)  // v2也会被推导为bool类型// 错误用法var b boolb = 1b = bool(1) // 编译错误

整型

类型 长度 值范围 int8 1 -128 ~ 127 uint8(byte) 1 0 ~ 255 int16 2 32768 ~ 32767 uint16 2 0 ~ 65535 int32 4 -2147483648 ~ 2147483647 uint32 4 0 ~ 4294967295 int64 8 -9223372036854775808 ~ 9223372036854775807 uint64 8 0 ~ 18446744073709551615 int 平台相关 平台相关 uint 平台相关 平台相关 uintptr 同指针 在32位平台上是4字节,64位平台上为8字节

整型参与赋值和运算时注意以下,

1. int 和 int32 在Go语言被认为是两种不同的类型,编译器也不会帮你自动做类型转换。

var v1 int32v2 := 64v1 = v2  // 编译错误

2.两个不同类型的整型数不能直接比较,比如int8类型数和int类型的数不能比较,但是各种类型的整型变量都可以直接与字面常量进行比较。

var (    i int32    j int64)i, j = 1, 2if i == j {         // 此处会编译错误    fmt.Println("i = j")}if i == 1 || j == 3 {   // 此处可以编译通过    fmt.Println("success")}

浮点型

在Go语言中定义了两个类型float32float64,对于一个浮点类型常量,其类型被自动推导为float64

var v1 float32v2 := 12.0  // float64

字符串

在Go语言中,字符串也是一种基本类型。

var str string      // 声明一个字符串  str = "hello go"    // 字符串赋值ch := str[0]        // 取字符串的第一个字符

字符串常用操作

1、字符串连接,使用+符号

var start, end stringstart = "hello "end = "go"con := start + endfmt.Println(con)        // 输出 hello go

2、获取字符串长度,使用len()函数。

var str string = "hello GO语言"len(str)    // 14 因为中文字符在utf-8上占用3个字节长度。所以是14个

3、获取字符串字符,使用s[i]形式。

字符类型

在Go语言中支持两种字符类型,一个是byte(uint8别名),代表UTF-8字符串的单个字节的值,另一个是rune,代表单个Unicode字符。Go语言多数API都假设字符串为UTF-8编码。

原创粉丝点击