- 博客(25)
- 收藏
- 关注
原创 GO语言入门-反射5(结构体的Tag)
在定义结构体类型时,可以在字段后面加上一个字符串,称为 Struct Tag。Tag 主要用来补充附加信息。Tag 由多个 key - value 构成,并以空格来分隔,key 和 value 之间用英文的冒号分隔。value 必须放在一对双引号中。在 reflect 包中定义了 StructTag 类型,表示 Tag 实例。从定义上可以看出,StructTag 是以字符串为基础的新类型。下面的示例演示了如何通过字段的 Tag 来为用户名和密码设置限制条件。
2025-04-11 11:07:55
589
原创 Go语言入门-反射4(动态构建类型)
1. `New` 函数:用于创建指定类型的新实例,返回 `*T` 类型。2. `ArrayOf` 函数:在运行阶段动态创建数组类型。3. `StructOf` 函数:动态创建新的结构体类型,但目前只能添加字段,不支持生成方法列表。4. `FuncOf` 函数:动态创建新的函数类型,`MakeFunc` 函数用于构建函数体逻辑。5. 生成通用函数体:通过 `MakeFunc` 函数生成函数实例,并赋值给符合类型的函数变量。
2025-04-10 12:22:54
772
原创 GO语言入门经典-反射3(Value 与对象的值)
使用 `Value` 类型公开的 `Set` 方法,能在运行时修改某个对象的值。其实现的功能与赋值运算符相同,但通过反射技术进行赋值,在一些需要动态处理的代码逻辑中会比较灵活(例如动态生成函数体逻辑)。
2025-04-08 09:25:36
609
原创 Go语言入门-反射2(获取类型信息)
调用 TypeOf 函数,会返回一个 Type 对象,其中包含了对象所属类型相关的信息。例如,假设定变量 a,类型为 uint16,赋值为 2800。调用 TypeOf 函数来获取与 uint16 类型关联的 Type 实例。然后尝试向屏幕输出类型信息。12.2.1 类型分辨Type.Kind 方法返回 reflect.Kind 类型的值,它是以 uint 为基础定义的,通过一系列常量值来为各种数据类型定义标识。分辨对象的数据类型是运用反射技术的基础。
2025-04-05 08:00:00
659
原创 Go语言入门-反射1(关键API)
Type 中比较常用的方法如下。(8)SetUint:设置无符号整数值,对象类型为 uint、uint8、uint16、uint32、uint64 的均可使用。(2)Uint:如果对象的值为 uint、uint8、uint16、uint32、uint64 类型,那么该方法就返回该值。(1)Int:如果此对象的值为 int、int8、int16、int32、int64 类型,那么该方法将返回该值。(5)Index:如果对象的值是数组、切片或字符串类型,则该方法返回指定索引处的值,类似于 a[0]、a[1]。
2025-04-04 08:00:00
733
原创 Go语言基础-环形链表
环形链表没有起点与终点,所有元素组成一个封闭的圆环结构。元素指针在环形链表中可以无限循环移动。如图 11-5 所示,A、B、C、D、E 组成环形链表。假设当前指针位于元素 A 处,指针向前移动,可以访问元素 A、B、C、D、E、A、B、C……由于环形链表没有首尾之分,所以如果指针一直向前移动,它就会循环访问元素,如图 11-6 所示。假设指针位于元素 D 处,并且向后移动,那么访问元素的顺序为 D、C、B、A、E、D、C、B……如图 11-7 所示。
2025-04-02 08:30:00
699
原创 Go语言映射与链表
映射(map)是一种集合,它的每个元素都带有 key。这个 key 用于标识元素,在同一个 map 对象中,元素的值可以重复出现,但 key 必须是唯一的。数组、切片类型的对象是通过 int 类型的索引来访问元素的,而映射类型的对象是通过 key 来访问元素的,key 可以是任意类型。
2025-03-31 08:30:00
736
1
原创 Go语言入门经典:数组与切片详解
数组和切片是Go语言中两种重要的数据结构。数组是一种固定长度的集合,而切片则是一种灵活的动态集合。本章将详细讲解数组和切片的定义、初始化、访问元素、动态操作等内容,帮助读者全面掌握这两种数据结构。
2025-03-30 08:30:00
877
原创 Go语言接口详解(5000字)
接口定义时,只需要提供方法的名称、参数和返回值,不需要实现代码。start() // 无参数,无返回值stop() uint16 // 无参数,有返回值timeout(long int64) bool // 有参数,有返回值在接口中,方法的命名必须是有效的,且同一个接口中不能出现重复的方法名。getContext(key int) (uint8, bool) // 方法名重复,编译错误接口是Go语言中实现多态的重要机制,通过接口可以将不同的类型统一起来,实现代码的解耦和复用。
2025-03-29 08:00:00
887
1
原创 Go语言结构体详解(5000字)
在Go语言中,当标准库提供的数据类型无法满足开发需求时,开发人员可以通过type关键字自定义新类型。自定义类型可以基于现有类型,也可以是结构体、接口、函数等复杂类型。上述代码基于string类型定义了新的类型name。尽管name类型与string类型的用法相似,但它们是两种独立的类型,不能直接进行比较运算。fmt.Printf("变量a的类型:%T\n", a)fmt.Printf("变量b的类型:%T\n", b)变量a的类型:string变量b的类型:main.name如果尝试直接比较a和b。
2025-03-28 08:00:00
643
1
原创 GO语言控制流程示例
1.1 基础结构与短声明Go的if语句允许在条件中直接声明变量,这是其他语言不具备的特性。示例:文件读取时的安全判断if1.2 嵌套条件与逻辑运算符Go支持&&(与)、||(或)、!(非)三种逻辑运算符实战案例:用户权限验证系统。
2025-03-26 08:30:00
251
1
原创 Go语言控制流程(2)
在Go语言的语句中,是一个特殊的关键字。在其他语言(如C、Java)的语句中,每个分支默认会贯穿执行,即执行完一个后会继续执行下一个,除非使用语句来终止。而在Go语言中,语句的分支默认是不会贯穿执行的,每个执行完后就会自动跳出语句。关键字的作用就是打破这种默认行为,让程序继续执行下一个分支。下面是一个简单的示例代码,展示了语句的使用:1.3 代码解释在上述代码中,我们定义了一个变量并赋值为2。进入语句,由于的值为2,所以执行分支,打印出“数字是2”。由于分支中使用了语句,程序会继续执行下一个分支,
2025-03-25 08:30:00
878
1
原创 Go语言流程控制深度解析(1)
顺序执行:最基础的代码执行逻辑,简单直接。if语句:实现条件判断,支持复杂嵌套和初始化,是逻辑分支的基础。switch语句:清晰处理多分支,支持表达式匹配和类型判断,代码更简洁。for循环:Go语言唯一的循环结构,形式多样,能满足各种循环需求。跳转语句breakcontinuegoto辅助控制流程,灵活改变执行路径。通过大量带详细解释的代码示例,希望读者能深入理解Go语言流程控制的核心要点。在实际开发中,多练习、多应用这些知识,才能编写出逻辑清晰、高效可靠的程序。
2025-03-24 08:30:00
786
1
原创 Go语言函数详解
本文是Go语言函数的全面指南,涵盖从基础到高级应用的内容。首先介绍函数基础定义,包括语法结构,以`func`开头,需明确函数名、参数列表和返回值列表,并给出无参数无返回值、有参数有返回值、多返回值函数的示例。接着阐述函数调用机制,强调参数传递和返回值处理规则,还给出常规调用和多次调用同一函数的示例。然后深入探讨`return`语句,说明其结束函数执行和传递返回值的功能,以及在有无返回值函数中的使用场景。此外,介绍多返回值函数的优势,如可同时返回操作结果和错误信息,并给出常规多返回值和命名返回值函数的示例。
2025-03-23 10:45:49
649
原创 Go语言指针学习
指针是Go语言中的一种特殊类型,它的实例保存的是被引用对象的内存地址,而非对象自身的值。当指针变量声明后若未获取到有效的内存地址,其默认值为nil(空引用)。
2025-03-22 21:01:25
594
原创 Go语言中的基础类型
通过本文的介绍,我们了解了Go语言中的字符与字符串类型,以及数值类型的多种表示方法。掌握这些基础知识对于编写高效的Go程序至关重要。希望通过这些示例代码和解释,读者能够更好地理解和应用Go语言中的变量与常量。在实际应用中,选择合适的数据类型可以显著提高程序的性能和可维护性。理解不同数据类型的特性和使用场景是成为一名优秀Go程序员的关键。
2025-03-20 08:30:00
649
原创 go变量与常量详解(5000字)2
变量声明方式常量特点使用const关键字声明定义后不能修改支持批量声明可以使用iota生成器作用域规则全局变量在整个包中可见局部变量只在声明它的代码块中可见支持变量遮蔽变量默认值数值类型:0布尔类型:false字符串:“”指针:nil最佳实践变量名要有意义,使用驼峰命名尽量使用短变量声明(:=)使代码更简洁及时释放不需要的变量合理使用批量声明注意变量的作用域注意事项变量必须先声明后使用变量声明后必须使用常量一旦定义不能修改。
2025-03-19 15:46:34
477
原创 Go运算符深度解析(超详细19000字)
Go语言提供了丰富的运算符系统,使程序员能够编写简洁高效的代码。本文全面介绍了Go语言中的各类运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符、成员运算符、取地址运算符和复合赋值运算符等。算术运算符在数值计算中扮演核心角色,包括基本的四则运算、取余、自增自减等。Go语言没有内置的指数运算符,但可以使用math.Pow函数实现。比较运算符用于比较两个值,返回布尔结果。比较浮点数时需要注意精度问题,应使用阈值比较。不同类型的比较有不同的规则,某些复合类型(如切片、映射)不可直接比较。逻辑运算符。
2025-03-18 23:26:46
1003
原创 Go语言变量类型
值类型传参时注意副本开销,大结构体优先使用指针接口类型断言始终使用安全格式避免直接操作底层数组,通过切片操作保证数据安全错误处理要明确错误类型,使用自定义错误增强可读性类型转换前必须进行有效性检查,避免panic风险。
2025-03-15 21:24:41
389
原创 Android移动应用基础(实验二)
2.实验要求编程调用Activity生命周期各方法,理解Activity生命周期;实现案例小猴子摘桃,掌握Activity之间是如何进行数据回传的。编程实现案例订餐菜单,掌握Fragment的使用。
2024-10-18 20:21:32
513
原创 Android移动应用基础(实验一)
1.实验目的掌握简单控件的使用,能够搭建简单的界面;掌握ListView控件与RecyclerView控件的使用,能独立搭建列表界面。2.实验要求开发一个整数加法的程序,实现将计算结果显示到界面上的功能。利用ListView控件完成“超市界面”展示页面。利用RecyclerView控件实现“动物列表界面”的展示。
2024-10-10 20:53:56
850
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人