- 博客(12)
- 收藏
- 关注
原创 【Go学习合集】进阶数据类型6 -------->interface
interface 是一种非常强大的特性,允许你定义一组方法,但不包含这些方法的实现。它提供了一种实现多态性的途径,使得不同类型可以通过实现相同的方法集来满足同一个接口,从而在不修改代码的情况下扩展功能。此外,也可以使用interface{}来定义一种可接受多种数据类型的变量。
2024-07-22 12:06:42
244
原创 【Go学习合集】进阶数据类型4 -------->结构体
定义person这样的一个结构体Age int定义及使用结构体Age int// 定义结构体// 访问和修改结构体。
2024-07-17 11:32:18
191
原创 【问题记录】Go并发读写string会导致Panic
学过java的同学应该比较清楚,string型字符串是不可变字符串,如果对其进行写操作,会重新申请一片内存空间,然后新建一个string,因此java的string可以说是内存安全的。而在go中,string作为基础数据类型,想当然的会认为string也是并发安全的,然而实际上并不是如此。
2024-07-17 11:21:36
381
原创 【Go学习合集】进阶数据类型4 -------->指针
/ 第一种定义方式var p1 *int // 此时p1的值为nil// 第二种定义方式i := 10p2 := &i // 此时p2指向i的地址// fmt.Println(*p1) 因为p1的值为nil,所以会报错-----------------------运行结果-------------------------p1 = <nil>*p2 = 10。
2024-07-12 10:36:44
297
原创 【go学习合集】进阶数据类型3 -------->映射(map)
/ 定义并初始化映射"Bob": 30,// 插入或更新元素// 访问元素// 删除元素// 检查键是否存在exists {} else {// 遍历映射----------------运行结果----------------------Alice 25Charlie 35。
2024-07-12 10:24:06
518
原创 【go学习合集】外记2 ------->总结go中各种关键字
iota 是一个常量生成器,用于简化定义递增枚举值的过程。它通常用于 const 声明块中,每当 const 声明块中的每一行新声明时,iota 的值会递增。defer 关键字用于延迟执行一个函数,直到包含 defer 的函数执行完毕后才会运行。defer 通常用于资源清理、文件关闭、解锁互斥锁等场景,确保在函数返回之前,一些必要的清理工作一定会被执行,即使函数中间发生了错误或者提前返回。
2024-07-11 16:46:19
1296
原创 【go学习合集】进阶数据类型2 -------->切片
/ 第一种方式,基于数组做切片slice := arr[0:4] // index左闭右开// 第二种方式,基于切片做切片// 第三种方式,直接定义切片,使用make申请空间,make([]T, len, cap)// 第四种方式,使用var声明,并使用append方法做数据追加,底层自动分配空间---------------------------运行结果------------------------------------
2024-07-11 10:55:02
786
原创 【go学习合集】进阶数据类型1 -------->数组
/ 第一种定义方式// 第二种定义方式, 定义时初始化// 第三种定义方式, 只定义部分,未定义的由0补足// 第四种定义方式, 不显示定义长度,由初始化值的个数决定// 第五种定义方式// 第六种定义方式-------------------------运行结果--------------------------
2024-07-10 11:21:03
338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人