Go语言的基础类型

一基础数据类型

一、布尔型(Bool)

  • 定义 :表示逻辑真 / 假,仅有两个值:truefalse
  • 内存占用:1 字节
  • 使用场景:条件判断、逻辑运算

二、数值型(Numeric)

1. 整数类型(Integer)

  • 特殊类型
    • byteuint8 的别名,用于处理 ASCII 字符
    • runeint32 的别名,用于表示 Unicode 字符(如中文、 emoji)

2. 浮点类型(Float)

三,字符串型(String)

  • 本质:不可变的 UTF-8 编码字节序列

  • 特性

    • 支持索引访问:s[0] 获取第一个字节(非字符!)
    • 字符串拼接:+ 运算符
    • 原生支持 Unicode,可包含任意字符(中文、表情等)

    1. byte 类型

    • 定义与本质byteuint8 的别名,占用 1 个字节的内存空间,其取值范围是 0 到 255。在 Go 里,byte 类型主要用于处理 ASCII 字符,因为 ASCII 字符集里的字符可以用一个字节来表示。
    • 使用场景 :当你处理只包含 ASCII 字符的字符串时,用 byte 类型会比较合适,比如处理简单的英文文本、基本的数字和符号等。

    2. rune 类型

    • 定义与本质runeint32 的别名,占用 4 个字节的内存空间。它主要用于表示 Unicode 码点,能够处理包括中文、日文、韩文、表情符号等各种非 ASCII 字符。
    • 使用场景 :当字符串包含非 ASCII 字符时,就需要使用 rune 类型。因为非 ASCII 字符在 UTF - 8 编码下可能会占用多个字节,而 rune 可以完整地表示一个 Unicode 字符。

四.使用样例

复制代码
package main

import (
    "fmt"
)

func main() {
    // 布尔型
    var b bool = true
    fmt.Printf("布尔型: 值为 %v,类型是 %T\n", b, b)

    // 整数类型
    var i8 int8 = -128
    var i16 int16 = -32768
    var i32 int32 = -2147483648
    var i64 int64 = -9223372036854775808
    var u8 uint8 = 255
    var u16 uint16 = 65535
    var u32 uint32 = 4294967295
    var u64 uint64 = 18446744073709551615
    var by byte = 255
    var r rune = 'A'
    fmt.Printf("int8: 值为 %v,类型是 %T\n", i8, i8)
    fmt.Printf("int16: 值为 %v,类型是 %T\n", i16, i16)
    fmt.Printf("int32: 值为 %v,类型是 %T\n", i32, i32)
    fmt.Printf("int64: 值为 %v,类型是 %T\n", i64, i64)
    fmt.Printf("uint8: 值为 %v,类型是 %T\n", u8, u8)
    fmt.Printf("uint16: 值为 %v,类型是 %T\n", u16, u16)
    fmt.Printf("uint32: 值为 %v,类型是 %T\n", u32, u32)
    fmt.Printf("uint64: 值为 %v,类型是 %T\n", u64, u64)
    fmt.Printf("byte: 值为 %v,类型是 %T\n", by, by)
    fmt.Printf("rune: 值为 %v,类型是 %T\n", r, r)

    // 浮点类型
    var f32 float32 = 3.1415926
    var f64 float64 = 3.141592653589793
    fmt.Printf("float32: 值为 %v,类型是 %T\n", f32, f32)
    fmt.Printf("float64: 值为 %v,类型是 %T\n", f64, f64)

    // 复数类型
    var c64 complex64 = 3 + 4i
    var c128 complex128 = 3 + 4i
    fmt.Printf("complex64: 值为 %v,类型是 %T\n", c64, c64)
    fmt.Printf("complex128: 值为 %v,类型是 %T\n", c128, c128)

    // 字符串类型
    var s string = "Hello, World!"
    fmt.Printf("字符串型: 值为 %v,类型是 %T\n", s, s)
}
相关推荐
草莓熊Lotso10 小时前
C++ 方向 Web 自动化测试实战:以博客系统为例,从用例到报告全流程解析
前端·网络·c++·人工智能·后端·python·功能测试
星释10 小时前
Rust 练习册 :Phone Number与电话号码处理
开发语言·机器学习·rust
one year.10 小时前
Linux:线程同步与互斥
java·开发语言
一 乐10 小时前
旅游|内蒙古景点旅游|基于Springboot+Vue的内蒙古景点旅游管理系统设计与实现(源码+数据库+文档)
开发语言·前端·数据库·vue.js·spring boot·后端·旅游
JaguarJack11 小时前
15 个 Eloquent 高级技巧,瞬间提升你的 Laravel 应用性能
后端·php·laravel
YDS82911 小时前
苍穹外卖 —— Spring Cache和购物车功能开发
java·spring boot·后端·spring·mybatis
苍老流年11 小时前
1. SpringBoot初始化器ApplicationContextInitializer使用与源码分析
java·spring boot·后端
星光一影11 小时前
基于SpringBoot智慧社区系统/乡村振兴系统/大数据与人工智能平台
大数据·spring boot·后端·mysql·elasticsearch·vue
leonardee11 小时前
Spring 中的 @ExceptionHandler 注解详解与应用
java·后端
不爱编程的小九九11 小时前
小九源码-springboot103-踏雪阁民宿订购平台
java·开发语言·spring boot