欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

go--基本数据类型

发布时间:2025/6/17 编程问答 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 go--基本数据类型 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

整形

整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、uint32、uint64

其中,uint8就是我们熟知的byte型,int16对应C语言中的short型,int64对应C语言中的long型。

八进制和十六进组织

func main(){// 十进制var a int = 10fmt.Printf("%d \n", a) // 10fmt.Printf("%b \n", a) // 1010 占位符%b表示二进制// 八进制 以0开头var b int = 077fmt.Printf("%o \n", b) // 77// 十六进制 以0x开头var c int = 0xfffmt.Printf("%x \n", c) // fffmt.Printf("%X \n", c) // FF// 变量的内存地址fmt.Printf("%p \n", &a) // 0xc00004c080 占位符%p表示十六进制的内存地址

浮点型

Go语言支持两种浮点型数:float32和float64。

func main() {fmt.Printf("%f\n", math.Pi)fmt.Printf("%.2f\n", math.Pi) }

布尔型

Go语言中以bool类型进行声明布尔型数据,布尔型数据只有true(真)和false(假)两个值。

注意: 1. 布尔类型变量的默认值为false。 2. Go 语言中不允许将整型强制转换为布尔型. 3. 布尔型无法参与数值运算,也无法与其他类型进行转换。

字符串

Go 语言里的字符串的内部实现使用UTF-8编码。 字符串的值为双引号(")中的内容。
注意:在go中,''单引号中存放的是单个的字符,而不是字符串。

字符串常用函数

  • len():求字符串长度。
  • +或fmt.Sprintf:拼接字符串。
  • strings.Split:分割字符串
  • strings.contains:判断是否包含
  • strings.HasPrefix,strings.HasSuffix:前缀/后缀判断
  • strings.Index(),strings.LastIndex():子串出现的位置
  • strings.Join(a[]string, sep string):join操作

byte和rune类型

组成每个字符串的元素叫做“字符”,可以通过遍历或者单个获取字符串元素获得字符。 字符用单引号(’)包裹起来。

Go 语言的字符有以下两种: 1. uint8类型,或者叫 byte 型,代表了ASCII码的一个字符。 2. rune类型,代表一个 UTF-8字符。

当需要处理中文、日文或者其他复合字符时,则需要用到rune类型。rune类型实际是一个int32。

Go 使用了特殊的 rune 类型来处理 Unicode,让基于 Unicode 的文本处理更为方便,也可以使用 byte 型进行默认字符串处理,性能和扩展性都有照顾。

// 遍历字符串 func traversalString() {s := "hello沙河"for i := 0; i < len(s); i++ { //bytefmt.Printf("%v(%c) ", s[i], s[i])}fmt.Println()for _, r := range s { //runefmt.Printf("%v(%c) ", r, r)}fmt.Println() }// 结果为 104(h) 101(e) 108(l) 108(l) 111(o) 230(æ) 178(²) 153() 230(æ) 178(²) 179(³) 104(h) 101(e) 108(l) 108(l) 111(o) 27801(沙) 27827(河)

修改字符串

要修改字符串,需要先将其转换成[]rune或[]byte,完成后再转换为string。无论哪种转换,都会重新分配内存,并复制字节数组。

func changeString() {s1 := "big"// 强制类型转换byteS1 := []byte(s1)byteS1[0] = 'p'fmt.Println(string(byteS1))s2 := "白萝卜"runeS2 := []rune(s2)runeS2[0] = '红'fmt.Println(string(runeS2)) }

强制类型转换

Go语言中只有强制类型转换,没有隐式类型转换。 基本语法:T(表达式)。

其中,T表示要转换的类型。表达式包括变量、复杂算子和函数返回值等. 比如计算直角三角形的斜边长。

func sqrtDemo() {var a, b = 3, 4var c int// math.Sqrt()接收的参数是float64类型,需要强制转换c = int(math.Sqrt(float64(a*a + b*b)))fmt.Println(c) }

转载于:https://www.cnblogs.com/peilanluo/p/10630275.html

总结

以上是生活随笔为你收集整理的go--基本数据类型的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。