
第三节课 运算、字符串连接、类型转换、断言
发布日期:2021-05-14 20:12:07
浏览次数:20
分类:精选文章
本文共 1496 字,大约阅读时间需要 4 分钟。
视频教程地址
注意:以下链接为示例,如需访问请自行 في尾部添加适当的超链接。...
数字运算
在编程中,了解如何在代码中进行基本的算术操作是每个开发者都需要掌握的基础技能。以下是一个简单的例子,展示了怎么在Go语言中对整数进行操作。示例代码:
var i intvar k inti = 2k = 3k = i + k // 代入k = 5fmt.Println(k) k += i // k = 7 fmt.Println(k) i++ // i = 3 fmt.Println(i)
理解上述代码,开发者可以更好地掌握变量的赋值和基本的算术操作。
字符串的简单连接
在编程中,连接字符串是一个非常常见的操作。对于不需要高性能的场景,可以直接使用字符串拼接功能。示例代码:
str1 := "hello"str2 := " world"str3 = str1 + str2 // 将字符串连接起来
需要注意的是,如果需要处理大量的字符串连接,可以使用 strings.Builder
或 bytes.Buffer
,这样可以显著提高拼接效率。
获取值类型的指针
在Go语言中,通过使用指针,可以直接访问内存中的值。这对于处理共享数据结构非常有用。示例代码:
var i inti = 2k := &i // 将i的地址赋值给k*k = 4 // 通过k指针改变i的内存值k1 := new(int)k1 = 4fmt.Printf("i=%d, *k1=%d\n;k1=%v", i, *k1, k1)
代码中的 new
关键字用于分配内存,返回一个指针。通过检查 *k1
的值,可以验证指针是否正确指向内存中的数据。
类型转换
在编程中,数据类型不一致会导致严重错误。正确的类型转换是确保程序可以顺利运行的重要防护。示例代码:
var i int8var k int32i = 8k = int32(i) // 但是,这不安全,因为int8和int32的大小不同。b := []byte{'a', 'b', 'c'}var str stringstr = string(b) // 将内存分析作为字符串显示var c []bytec = []byte(str) // byte切片是一个高效的内存表示fmt.Println(str, "aaa", k) // 查看各变量的值fmt.Println("c:", c) // 查看byte切片的内容// 使用strconv进行更复杂的字符串转换for i, k := range c { fmt.Printf("%v:%v\n", i, string(k))}
需要注意的是,当处理非ASCII字符时,使用 rune
切片,比如 asciibb := []rune(str)
更为合适。
类型断言
类型断言是将 `interface{}` 类型转换为具体类型的关键工具。示例代码:
var b interface{}b = "abc"c, ok := b.(string)fmt.Printf("%T, %v, %v\n", c, c, ok)
这个例子解释了如何检查变量实际的类型,并返回相应的标志值。
类型断言
类型断言是将 `interface{}` 类型转换为具体类型的关键工具。在代码中,使用断言可以帮助我们理解变量的真实类型,并确保程序的安全性。通过上述示例,我们可以看到,断言提供了一个强大的类型检查机制,适合在实际代码中应用。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月08日 11时18分53秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Android进阶解密读书笔记2——第2章:Android系统启动——第1、2小节
2019-03-11
GreenDao之注解
2019-03-11
Android使用Font Awesome
2019-03-11
主线程中Looper的轮询死循环为何没有阻塞主线程?
2019-03-11
Gradle实战四:Jenkins持续集成
2019-03-11
使用RestTemplate,显示请求信息,响应信息
2019-03-11
wgcloud运维监控系统错误:防篡改校验错误次数大于10次,不再上报数据
2019-03-11
为什么WGCLOUD安装完后,启动服务端打不开网页
2019-03-11
wgcloud网络监控出现负值
2019-03-11
ios 官方sample
2019-03-11
iOS 开发官方文档链接收集
2019-03-11
网易云面试(Android岗)之旅,差点被这些基础题绊了跟头。
2019-03-11
Android音视频开发之——音频非压缩编码和压缩编码
2019-03-11
linux学习笔记(四)基本用户管理与帮助命令
2019-03-11
小程序:防止父方法被子方法冒泡,使用catchtap
2019-03-11
vue报错 created hook错误
2019-03-11
单选框点击文字也能选中
2019-03-11
此主机支持Intel VT-x,但Intel VT-x 处于禁用状态。
2019-03-11