Go 语言数据类型教程 4

Go 语言提供了多种基本数据类型,用于存储和操作数据。下面是 Go 语言中常见的数据类型:

整数类型

Go 语言中有四种整数类型:

  • int: 32 位整数
  • int8: 8 位有符号整数
  • int16: 16 位有符号整数
  • int32: 32 位有符号整数
  • int64: 64 位有符号整数
  • uint: 32 位无符号整数
  • uint8: 8 位无符号整数
  • uint16: 16 位无符号整数
  • uint32: 32 位无符号整数
  • uint64: 64 位无符号整数

下面是一个使用整数类型的示例:

package main

import "fmt"

func main() {
    var x int = 10
    var y uint = 20
    fmt.Println(x) // 10
    fmt.Println(y) // 20
}

浮点数类型

Go 语言中有两个浮点数类型:

  • float32: 32 位浮点数
  • float64: 64 位浮点数

下面是一个使用浮点数类型的示例:

package main

import "fmt"

func main() {
    var x float32 = 3.14
    var y float64 = 2.71
    fmt.Println(x) // 3.14
    fmt.Println(y) // 2.71
}

字符类型

Go 语言中有一个字符类型:

  • byte: 8 位无符号整数,用于表示 ASCII 字符
  • rune: 32 位无符号整数,用于表示 Unicode 字符

下面是一个使用字符类型的示例:

package main

import "fmt"

func main() {
    var c byte = 'A'
    var r rune = '中'
    fmt.Println(c) // A
    fmt.Println(r) // 中
}

布尔类型

Go 语言中有一个布尔类型:

  • bool: 1 位布尔值,用于表示 true 或 false

下面是一个使用布尔类型的示例:

package main

import "fmt"

func main() {
    var b bool = true
    fmt.Println(b) // true
}

字符串类型

Go 语言中有一个字符串类型:

  • string: 字符串类型,用于表示一系列字符

下面是一个使用字符串类型的示例:

package main

import "fmt"

func main() {
    var s string = "hello, world!"
    fmt.Println(s) // hello, world!
}

指针类型

Go 语言中有一个指针类型:

  • *T: 指针类型,用于表示指向类型 T 的指针

下面是一个使用指针类型的示例:

package main

import "fmt"

func main() {
    var x int = 10
    var px *int = &x
    fmt.Println(*px) // 10
}

结构体类型

Go 语言中有一个结构体类型:

  • struct: 结构体类型,用于表示一系列字段

下面是一个使用结构体类型的示例:

package main

import "fmt"

type Person struct {
    name string
    age  int
}

func main() {
    var p Person
    p.name = "John"
    p.age = 30
    fmt.Println(p.name) // John
    fmt.Println(p.age)  // 30
}

数组和 slice 类型

Go 语言中有两个数组和 slice 类型:

  • []T: 数组类型,用于表示固定长度的数组
  • []T{}: slice 类型,用于表示可变长度的数组

下面是一个使用数组和 slice 类型的示例:

package main

import "fmt"

func main() {
    var arr [5]int = [5]int{1, 2, 3, 4, 5}
    var slc []int = []int{1, 2, 3, 4, 5}
    fmt.Println(arr[0]) // 1
    fmt.Println(slc[0]) // 1
    slc = append(slc, 6)
    fmt.Println(slc) // [1 2 3 4 5 6]
}

接口类型

Go 语言中有一个接口类型:

  • interface{}: 接口类型,用于表示一个可以实现多种行为的对象

下面是一个使用接口类型的示例:

package main

import "fmt"

type Shape interface {
    area() float64
}

type Circle struct {
    radius float64
}

func (c Circle) area() float64 {
    return 3.14 * c.radius * c.radius
}

type Rectangle struct {
    width  float64
    height float64
}

func (r Rectangle) area() float64 {
    return r.width * r.height
}

func main() {
    var c Circle = Circle{5.0}
    var r Rectangle = Rectangle{4.0, 6.0}
    var shapes []Shape = []Shape{c, r}
    for _, shape := range shapes {
        fmt.Println(shape.area()) // 78.5
    }
}

maps 类型

Go 语言中有一个 maps 类型:

  • map[K]V: maps 类型,用于表示键值对的集合

下面是一个使用 maps 类型的示例:

package main

import "fmt"

func main() {
    var m map[string]int = map[string]int{"a": 1, "b": 2}
    fmt.Println(m["a"]) // 1
    m["c"] = 3
    fmt.Println(m) // map[b:2 c:3 a:1]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值