一、Go基础知识3、基本数据类型

一、基本数据类型

1、bool

只可能是true和flase。

var a bool = true

2、数值类型

1)整数型

  • int8 有符号 8 位整型(-128 到 127) 长度: 8bit
  • int16 有符号 16 位整型(-32768 到 32767)
  • int32 有符号 32 位整型-2147483648 到 2147483647)
  • int64有符号 64 位整型-9223372036854775808到 9223372036854775807)
  • uint8 无符号 8 位整型(0到 255) 8位都用于表示数值
  • uint16 无符号 16 位整型(0 到 65535)
  • uint32 无符号 32 位整型(0 到 4294967295)
  • uint64 五符号 64 位整型10 到 18446744073709551615
另外:int和uint的区别

int为有符号数,uint为无符号数。
有符号数能有正负,无符号数只有正与0。
当转换为二进制后,有符号数的第一位用1、0代表正、负。

2)浮点型

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

3)复数

4)byte字节

byte等于uint8
主要用于存放字符、字符串
如果只有英文字符,推荐用byte,因为省空间。

5)rune类型

rune等于int32,如果包含中文字符,就用rune。
在Go语言中,rune 类型用于表示Unicode码点(Unicode code point),它实际上是一个int32类型的别名。rune 类型通常用于处理Unicode字符,特别是当需要处理字符串中的 Unicode 字符时,使用 rune 类型会更加方便。

注意:(中文字符通常是Unicode字符的一部分,Unicode码点范围覆盖了世界上几乎所有的书写系统,包括中文。因此,当你需要处理包含中文字符或其他Unicode字符的字符串时,使用 rune 类型可以更好地处理字符级别的操作,例如字符串的遍历、索引等。)

示例:

package main

import "fmt"

func main() {
    str := "你好,世界!" // 包含中文字符的字符串
    // 将字符串转换为rune切片
    chars := []rune(str)

    // 遍历rune切片,打印每个Unicode字符的码点和字符本身
    for i, char := range chars {
        fmt.Printf("索引 %d: 码点 %U, 字符 %c\n", i, char, char)
    }
}

结果:

索引 0: 码点 U+4F60, 字符 你
索引 3: 码点 U+597D, 字符 好
索引 6: 码点 U+FF0C, 字符 ,
索引 7: 码点 U+4E16, 字符 世
索引 10: 码点 U+754C, 字符 界
索引 13: 码点 U+FF01, 字符 !

3、字符和string

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
1. 变量和常量声明 Go语言中,使用var关键字声明变量,常量使用const关键字声明。 ``` var name string = "Tom" var age int = 18 const pi = 3.14 ``` 2. 数据类型 Go语言中,基本数据类型包括整型、浮点型、布尔型、字符串型等。 ``` var num int = 10 var f float64 = 3.14 var flag bool = true var str string = "hello world" ``` 3. 控制语句 Go语言中,支持if、for、switch等控制语句。 ``` if num > 0 { fmt.Println("positive") } else { fmt.Println("negative") } for i := 0; i < 10; i++ { fmt.Println(i) } switch num { case 1: fmt.Println("one") case 2: fmt.Println("two") default: fmt.Println("others") } ``` 4. 函数 Go语言中,使用func关键字定义函数。 ``` func add(a, b int) int { return a + b } result := add(1, 2) fmt.Println(result) ``` 5. 包和导入 Go语言中,使用package关键字定义包,使用import关键字导入包。 ``` package main import "fmt" func main() { fmt.Println("hello world") } ``` 6. 结构体和方法 Go语言中,使用type关键字定义自定义结构体,可以给结构体定义方法。 ``` type Person struct { name string age int } func (p Person) sayHello() { fmt.Println("hello, my name is", p.name) } p1 := Person{name: "Tom", age: 18} p1.sayHello() ``` 7. 指针 Go语言中,使用&符号获取变量的地址,使用*符号获取指针指向的值。 ``` num := 10 ptr := &num fmt.Println(*ptr) ``` 8. 数组和切片 Go语言中,使用[]定义数组和切片,数组长度固定,切片长度可变。 ``` arr := [3]int{1, 2, 3} slice := []int{1, 2, 3} ``` 9. map Go语言中,使用map关键字定义map。 ``` m := make(map[string]int) m["one"] = 1 m["two"] = 2 fmt.Println(m["one"]) ``` 10. 接口 Go语言中,使用interface关键字定义接口,一个类型只要实现了接口中定义的所有方法,就可以被认为是实现了该接口。 ``` type Shape interface { area() float64 } type Rectangle struct { width float64 height float64 } func (r Rectangle) area() float64 { return r.width * r.height } r := Rectangle{width: 10, height: 5} var s Shape = r fmt.Println(s.area()) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风不归Alkaid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值