go 的基本数据类型

bool

string

int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr

byte // uint8 的别名

rune // int32 的别名
// 表示一个 Unicode 码点

float32 float64

complex64 complex128

导图1.jpg

bool

package main

import (
    "fmt"
    "unsafe"
)

func main() {
    //不可以用0 或者 非0 代替 false 或 true
    var b = false
    fmt.Println("b=", b)
    fmt.Println("b的占用空间 = ",unsafe.Sizeof(b))
}

char

package main

import (
    "fmt"
)

func main() {
    var c1 byte = 'a'
    var c2 byte = '0'

    fmt.Println(c1)
    fmt.Println(c2)
    fmt.Printf("c1 = %c c2 = %c \n", c1, c2)

    var c3 int = '白'
    fmt.Printf("c3 = %c c3对应的码值 %d \n", c3, c3)

    var c4 int = 22269
    fmt.Printf("c4 = %c\n", c4)
    // 给变量赋值 格式化输出是%c,会输出该数字对应的Unicode字符

    var n1  = 10 + 'a'
    fmt.Println("n1=",n1)
    //字符类型可以进行运算 运算时按码值进行
}

// 字符常量用单引号括起来
//go语言 用utf-8 编码 英文1个字节 汉字3个字节

float

package main

import (
    "fmt"
)

func main() {
    // 位数部分可能丢失部分精度
    var num1 float32 = -123.00000901
    var num2 float64 = -123.00000901

    fmt.Println(num1)
    fmt.Println(num2)

    // golang 的浮点型默认声明为float64
    var num3 = 1.1
    fmt.Printf("num3 的数据类型 %T \n", num3)

    num4 := .123
    fmt.Println(num4)

    num5 := 5.1234e2
    fmt.Println(num5)
    // 科学计数法的形式
    num6 := 5.1234E-2
    fmt.Println(num6)
}

string

package main

import (
    "fmt"
)

func main() {
    //go的字符串是单个字节连接起来的
    // go 中字符串不可变 一旦赋值字符串无法修改

    // 双引号 "" 会识别转义字符
    // 反引号 `` 以字符串的原生形式输出 包括换行和特殊字符 可以实现防止攻击 输出源码 等效果
    str1 := "abc \nabc"
    fmt.Println(str1)

    str2 := "hello" + "world" +
        "你好" + "世界"

    fmt.Println(str2)

}

基本数据类型的默认值

数据类型 默认值
int 0
float 0
string ""
bool false
package main

import (
    "fmt"
)

func main() {
    var a int
    var b float32
    var c float64
    var israin bool
    var name string

    fmt.Printf("a=%d,b=%v,c=%v,israin=%v,name=%v", a, b, c, israin, name)
    // a=0,b=0,c=0,israin=false,name=

}

你可能感兴趣的:(go 的基本数据类型)