第三节课 运算、字符串连接、类型转换、断言
发布日期:2021-05-14 20:12:07 浏览次数:20 分类:精选文章

本文共 1496 字,大约阅读时间需要 4 分钟。

视频教程地址

注意:以下链接为示例,如需访问请自行 في尾部添加适当的超链接。

...

数字运算

在编程中,了解如何在代码中进行基本的算术操作是每个开发者都需要掌握的基础技能。以下是一个简单的例子,展示了怎么在Go语言中对整数进行操作。

示例代码:

var i int
var k int
i = 2
k = 3
k = i + k // 代入k = 5
fmt.Println(k)
k += i // k = 7
fmt.Println(k)
i++ // i = 3
fmt.Println(i)

理解上述代码,开发者可以更好地掌握变量的赋值和基本的算术操作。

字符串的简单连接

在编程中,连接字符串是一个非常常见的操作。对于不需要高性能的场景,可以直接使用字符串拼接功能。

示例代码:

str1 := "hello"
str2 := " world"
str3 = str1 + str2 // 将字符串连接起来

需要注意的是,如果需要处理大量的字符串连接,可以使用 strings.Builderbytes.Buffer,这样可以显著提高拼接效率。


获取值类型的指针

在Go语言中,通过使用指针,可以直接访问内存中的值。这对于处理共享数据结构非常有用。

示例代码:

var i int
i = 2
k := &i // 将i的地址赋值给k
*k = 4 // 通过k指针改变i的内存值
k1 := new(int)
k1 = 4
fmt.Printf("i=%d, *k1=%d\n;k1=%v", i, *k1, k1)

代码中的 new 关键字用于分配内存,返回一个指针。通过检查 *k1 的值,可以验证指针是否正确指向内存中的数据。


类型转换

在编程中,数据类型不一致会导致严重错误。正确的类型转换是确保程序可以顺利运行的重要防护。

示例代码:

var i int8
var k int32
i = 8
k = int32(i) // 但是,这不安全,因为int8和int32的大小不同。
b := []byte{'a', 'b', 'c'}
var str string
str = string(b) // 将内存分析作为字符串显示
var c []byte
c = []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{}` 类型转换为具体类型的关键工具。在代码中,使用断言可以帮助我们理解变量的真实类型,并确保程序的安全性。

通过上述示例,我们可以看到,断言提供了一个强大的类型检查机制,适合在实际代码中应用。

上一篇:第二课 golang的常量、枚举、类型的讲解
下一篇:第一课 golang 的安装

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月08日 11时18分53秒