清风徐来
Michael's Blog
Go的基本数据类型

在本教程中,我们将学习Go语言中可用的所有基本数据类型。在本教程结束时,您应该熟悉该语言中提供的各种不同类型,并希望了解如何在您自己的Go程序中使用这些类型。 Go的基本数据类型

ps:本节课程很无聊,但是不可或缺。

##数据类型 Go编程语言中有4种不同类型的类型

  • 基本类型 我们将在本教程中介绍的内容
  • 聚合类型 数组和结构
  • 引用类型 指针和切片
  • 接口类型 标准接口

##整型

简单点,直接在代码里注释讲解吧

// 所有数字类型默认为0

// 无符号的8位整型
// 可存储: 0 to 255
var myint uint8
// 有符号的8位整型
// 可存储: -127 to 127
var myint int8

// 无符号的16位整型
var myint uint16
// 有符号的16位整型
var myint int16

// 无符号的32位整型
var myint uint32
// 带符号的32位整型
var myint int32

// 无符号的64位整型
var myint uint64
// 带符号的64位整型
var myint int64

存储超过大小的值编译会无法通过。初始存储未超过大小,但是运行中溢出了,可能会出现其它结果:

package main

import (
    "fmt"
)

func main() {
    fmt.Println("Hello World")

    var myint int8
    for i := 0; i < 129; i++ {
        myint += 1
    }
    fmt.Println(myint) // 打印输出 -127
}

这是你编写程序时需要注意的!

##标准int类型 如果在定义整数值时用这么冗长写法,肯定麻烦。大多数情况下,可以默认为int。此int数据类型通常为32位或64位,具体取决于您的操作系统是32位系统还是64位系统。

为简单起见,最好默认使用此数据类型,您会发现这是使用最广泛的数据类型。

###类型转换 在进行一些运算时,需要进行转换,因为不同类型是不能进行运算的。上代码:

var men uint8
men = 5
var women int16
women = 6

var people int
// 这会引发编译错误
people = men + women
// 转换为以下标准格式才能编译执行
people = int(men) + int(women)

##浮点数类型

接下来,我们来说浮点数。它们有两种不同的大小,float32或float64。比int64大的数字,也可以用他们来替代。

var f1 float32
var f2 float64

看看如何声明和使用浮点数:

var maxFloat32 float32
maxFloat32 = 16777216
fmt.Println(maxFloat32 == maxFloat32+10) // 有其它语言基础的同学,通常会期望这会返回false
// 它返回true
fmt.Println(maxFloat32+10) // 16777216
fmt.Println(maxFloat32+2000000) // 16777216

###将float和int互相转换

// 从int转换为float
var myint int
myfloat := float64(myint)

// 从float转换为int
var myfloat2 float64
myint2 := int(myfloat2)

##复数 与浮点数据类型非常相似,有两种不同的大小,你可以选择complex64或complex128

##Booleans bool,表示真或假。让我们看看如何在我们的Go程序中使用它:

var amazing bool
amazing = true
if amazing {
  subscribeToChannel()
}

很简单,但是如果我们想在程序中做一些布尔逻辑运算会发生什么?好吧,使用||和&&来实现或和与运算。

var isTrue bool = true
var isFalse bool = false
// AND
if isTrue && isFalse {
  fmt.Println("两个条件都必须是真")
}
// OR
if isTrue || isFalse {
  fmt.Println("只有一个条件需要为True")
}

##Strings 字符串 Go语言中的字符串就是我们称之为字符切片的字符串。我们可以使用string声明一个新的字符串变量:

var myName string
myName = "Michael Yang"

##常量 常量是Go语言中的最终(final)基本数据类型。它们允许我们指定在程序执行过程中不会改变的不可变值。 const meaningOfLife = 32

##小结 本节把基本数据类型过了一边,不能再简单了,要不就说不清了。


最后修改于 2019-07-29