- 博客(184)
- 收藏
- 关注

原创 QT中常用类的成员(2024.8.20更新)
/ QUrl 类是 Qt 框架中用于处理 URL 的重要类。以下是 QUrl 类的所有成员函数和枚举类型的详细列表:// 构造函数QUrl();// 默认构造函数,创建一个空的 QUrl 对象// 从字符串创建 QUrl 对象// 从字符串和解析模式创建 QUrl 对象// 拷贝构造函数// 移动构造函数// 析构函数~QUrl();// 析构函数// 公共成员函数// 赋值运算符// 移动赋值运算符// 交换函数// 检查 QUrl 是否为空// 检查 QUrl 是否有效。
2024-08-21 08:00:00
2192
2
原创 lua 元表
在 Lua 中,元表(Metatable)是一种强大的机制,它允许程序员自定义表(table)的行为。通过使用元表,你可以改变表的运算符重载、方法调用、索引方式等行为。元表能够让 Lua 的表更具灵活性和功能性。
2024-12-17 12:23:37
182
原创 lua 函数
使用 function 关键字来定义一个函数。-- 函数体return value -- 可选,返回值endendprint(add(2, 3)) -- 输出: 5Lua 允许函数接收可变数量的参数,可以使用 … 来表示。endprint(concatenate("apple", "banana", "cherry")) -- 输出: apple, banana, cherry一个闭包是在其外部函数的作用域中定义的函数,它可以捕获和访问该作用域中的变量。
2024-11-12 20:02:59
438
原创 lua 中引用
在 Lua 中,引用(或引用类型)涉及到如何处理表(Arrays,Tables)和其他复杂数据结构。与基本数据类型(如数字、字符串和布尔值)不同,表是引用类型,这意味着它们在内存中的处理方式与基本数据类型有所不同。我们用到的所有的 table 都是匿名的,所有的变量,只是对其引用而己。我们对于 table的操作仅仅是对其引用的操作。对于 Table 的引用,类似于 C++中 shared_ptr 对于对象的托管一样,采用了引用计数的方式。
2024-11-11 08:16:47
565
原创 lua 数组
table 是 Lua 中唯一的数据结构,其他语言所提供的数据结构,如:arrays、records、lists、 queues、 sets 等,Lua 都是通过 table 来实现在 lua 中通过整数下标访问 table 中元素,即是数组。并且数组大小不固定,可动态增长。数组是有序的对象的装置,它可以是包含含有多个行和列的行或多维阵列的集合的单个二维数组。
2024-11-11 08:16:25
744
原创 lua 字符串
Lua 提供了字符串处理函数,可以方便地处理字符串。使用一对匹配的单引号.例:‘hello’.使用一对匹配的双引号.例:“abclua”.字符串还可以用一种长括号(即[[ ]]) 括起来的方式定义.
2024-11-09 17:30:32
525
原创 lua ruturn 和goto
goto 语句,可以跳到程序中的任意 Label 标号,其 Label 的书写方式 ::name::。lua 虽然没有提供 continue 逻辑,contiune 的逻辑本质就是过滤,可以能过合理的安。return 只能出现在,语句块的结尾,或是 end,else 和 until 的前面。标号处的语句是依次执行的。不要理解为 Label 后的语句是函数,等待被调用。function 语句用于定义函数,可以指定函数名、参数、返回值、函数体。goto 语句不能跨越函数,也不能跳入局部变量的作用域。
2024-11-09 17:30:11
409
原创 lua 运算符和控制语句
=~=>=<=andornot..a and b 当 a 为真时返回 b, 当 a 为假时,返回 a 条件表达式 a?b:aa or b 当 a 为真时返回 a, 当 a 为假时,返回 b 条件表达式 a?a:bnot a 当 a 为真时返回假,当 a 为假时,返回真 条件表达式 a?false:true。
2024-11-06 20:50:31
674
原创 Lua数据类型
Table 类型中一种基于 k-v 类型,实现了一种抽象的 “map”。索引 k 通常是字符串(string) 或者 number 类型,但也可以是除 nil 以外的任意类型。并不展开(此举,跟 C++11 中 R"(hello lua)"相似) , 2 -> 便于多行书写。对于无 key 的类型,此时的 key 类型为 number,下标从 1 开始,下标依次累加。字符串还可以用一种长括号(即[[ ]]) 括起来的方式定义。Lua 中没有字符类型,所谓的字符类型也是含有一个字符的字符串而己。
2024-11-06 20:49:41
426
原创 final,finally,finalize的区别
finalize 是一个方法,属于 java.lang.Object 类。在垃圾回收之前,系统会调用这个方法,允许程序员在对象被回收之前释放资源或执行清理操作。注意,使用 finalize 方法并不推荐,因为它的调用时机是不确定的,并且在Java 9中已经被标记为弃用。finally 是一个关键字,用于异常处理中的一种结构。无论是否捕获了异常,finally 块中的代码都会执行。通常用于释放资源或执行清理操作。final 是一个关键字,用于声明一个不可改变的实体。可以用于类、方法和变量。
2024-10-06 20:30:57
556
原创 最新版IntelliJ IDEA 2024.2.3 创建SpringBoot项目(包含各种依赖的选择和功能)
在顶端几个选项可以选择创建基本的java项目填写项目名称,文件位置,选择构建工具。
2024-10-06 20:21:36
7292
2
原创 微信原生小程序
在微信小程序中,自定义组件是一种将功能封装为独立的组件,以便复用和管理的方式。自定义组件可以包含自身的模板、样式和逻辑,帮助你保持代码的清晰和模块化。创建组件目录:在小程序的 components 目录下创建一个新的文件夹,例如 my-component。创建组件文件:my-component.wxml:组件的模板文件。my-component.wxss:组件的样式文件。my-component.js:组件的逻辑文件。my-component.json:组件的配置文件(可选)。
2024-10-04 16:05:36
1908
2
原创 HTML详解
HTML 基础HTML 标题HTML 段落HTML 链接HTML 图片HTML 元素HTML 注释HTML 属性HTML 文本格式化HTML 头部HTML cssHTML 表格HTML 列表HTML 自定义列表HTML 区块HTML 表单HTML 框架HTML 颜色HTML 脚本HTML 事件HTML 实体HTML urlHTML5 新元素 新元素 新元素 新元素 新元素 新元素 新元素新表单元素 新元素uotput 新属性新的语义和结构元
2024-10-04 16:04:42
1248
原创 qml focus 焦点
在QML中,focus属性是一个布尔值,用于控制一个元素是否可以接收键盘输入。当一个元素具有焦点时,它可以响应键盘事件,如按键按下、释放等。以下是关于如何在QML中使用focus属性的详细介绍:基本概念焦点(Focus):一个元素如果具有焦点,意味着它是当前接收键盘输入的元素。键盘事件:具有焦点的元素可以接收和处理键盘事件,如onPressed、onReleased等。设置焦点你可以通过设置focus属性为true来使一个元素获得焦点。焦点转移焦点可以在不同的元素之间转移。
2024-09-23 15:39:46
851
原创 qml ComboBox 组合框
width: 640ComboBox {// 自定义委托,用于显示下拉框中的每一项// 必需的属性,用于访问模型数据和索引text: delegate.model[control.textRole] // 显示模型中的文本color: "#21be2b" // 文本颜色font: control.font // 使用ComboBox的字体elide: Text.ElideRight // 文本过长时省略号显示。
2024-09-23 15:39:15
728
原创 Go语言中的并发编程
发送通道:可以使用 chan<- 来表示一个只用于发送数据的通道。接收通道:可以使用 <-chan 来表示一个只用于接收数据的通道。import ("fmt"// 定义一个函数,接受一个发送通道作为参数 在这个函数中,ch 被定义为一个发送通道,意味着这个函数只能向 ch 发送数据,无法从中接收数据messages := []string{"消息1", "消息2", "消息3"}ch <- msg // 发送消息close(ch) // 关闭通道。
2024-09-22 15:19:28
1407
原创 go 反射
用于检查接口、切片、映射、指针和通道等是否为 nil。只在引用语义类型上有效。用于检查反射值是否有效。适用于所有类型,检查是否由合理的 reflect.ValueOf() 生成。在Go语言项目中,反射可以在特定情况下提供灵活性和简洁性。以下是一些,适合使用反射:1. 序列化和反序列化反射广泛用于实现数据的序列化和反序列化,比如将结构体转换为 JSON 或从 JSON 转换为结构体。通过反射,可以遍历结构体的字段并动态处理它们。
2024-09-21 23:25:22
1063
原创 go 接口
type 接口类型名 interface {方法名 1(参数列表 1) 返回值列表 1 方法名 2(参数列表 2) 返回值列表 2 … } 其中: - 接口类型名:Go语言的接口在命名时,一般会在单词后面添加`er`,如有写操作的接口叫`Writer`,有关闭操作的接口叫`closer`等。接口名最好要能突出该接口的类型含义。- 方法名:当方法名首字母是大写且这个接口类型名首字母也是大写时,这个方法可以被接口所在的包(package)之外的代码访问。
2024-09-21 21:34:00
1071
原创 go语言 结构体
在Go语言中有一些基本的数据类型,如string整型浮点型布尔等数据类型,Go语言中可以使用type关键字来定义自定义类型。自定义类型是定义了一个全新的类型。//将MyInt定义为int类型// 方法的实现func (接收者变量 接收者类型) 方法名(参数列表) (返回参数) {函数体- 接收者变量:接收者中的参数变量名在命名时,官方建议使用接收者类型名称首字母的小写,而不是`self`、`this`之类的命名。
2024-09-21 17:50:43
769
原创 go 指针
指针类型:Go 中的指针由 * 符号表示。例如,*int 表示一个指向整数的指针。获取地址:使用 & 符号可以获取变量的地址,例如 &x 表示变量 x 的地址。解引用:通过 * 符号可以获取指针指向的值,例如 *ptr 可以获取 ptr 指向的值。零值指针:指针的零值为 nil,在使用指针之前应确保它不为 nil。指针与性能:虽然使用指针可以提高性能,但过度使用指针可能会导致代码难以理解和维护。Go语言中使用&字符放在变量前面对变量进行“取地址”操作。
2024-09-21 15:27:09
479
原创 go/函数
我们可以使用type关键字来定义一个函数类型,具体格式如下:import ("fmt"// 定义一个函数类型// 定义两个具体的函数符合这个类型在这个例子中,IntOperation是一个函数类型,它接受两个int参数并返回一个int值。
2024-09-21 15:26:38
1237
原创 go语言Map详解
Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。它提供了高效的查找、插入和删除操作,非常适合用于构建关联数组或字典。
2024-09-20 23:48:32
1121
原创 go语言基础入门(一)
可以在常量声明中使用算术运算与iota结合,创建具有特定增量的常量。const (_ = iota // 忽略第一个值(0)fmt.Println(Two, Four, Six) // 输出: 2 4 6在这个例子中,我们定义了一个 Weekday 类型,并使用 iota 来生成枚举值。然后,我们为 Weekday 类型实现了 String 方法,这样在打印枚举值时,会输出对应的字符串名称,而不是整数值。
2024-09-20 22:49:27
1412
原创 qml ListView 列表视图
在QML(Qt Modeling Language)中,ListView元素用于显示列表数据。它可以绑定到一个模型,并根据模型中的数据自动生成多个项。
2024-09-20 14:15:18
316
原创 qml Repeater 重复器
在QML(Qt Modeling Language)中,Repeater元素用于创建多个相同或相似的项。它通常与ListView、GridView或其他容器一起使用,以便动态生成多个项。
2024-09-20 14:14:54
387
原创 c++面试题
浅拷贝:浅拷贝在复制对象时,只复制对象中的基本数据类型成员和指针值,而不复制指针指向的内存内容。这意味着复制后的对象中的指针将与原对象共享同一块内存。如果某个对象被析构,而该对象的指针指向的内存也被释放,那么其他共享同一内存的对象可能会访问已释放的内存,导致未定义行为甚至程序崩溃。这种情况称为“双重释放”(double free)。在C++中,如果没有为类定义自定义的拷贝构造函数,编译器提供的默认拷贝构造函数就是浅拷贝。
2024-09-20 11:02:16
430
原创 platform
在Linux内核中,platform驱动模型是一种用于管理和组织与系统总线(如PCI、USB等)无关的硬件设备的架构。这些设备通常直接连接到处理器的总线或集成在芯片组中。platform驱动模型提供了一种通用的方式来管理这些设备,使得内核能够灵活地支持各种硬件平台。
2024-09-19 14:06:37
840
原创 c++面试题
浅拷贝:浅拷贝在复制对象时,只复制对象中的基本数据类型成员和指针值,而不复制指针指向的内存内容。这意味着复制后的对象中的指针将与原对象共享同一块内存。如果某个对象被析构,而该对象的指针指向的内存也被释放,那么其他共享同一内存的对象可能会访问已释放的内存,导致未定义行为甚至程序崩溃。这种情况称为“双重释放”(double free)。在C++中,如果没有为类定义自定义的拷贝构造函数,编译器提供的默认拷贝构造函数就是浅拷贝。
2024-09-19 10:26:11
461
原创 linux驱动开发-中断子系统
在实际的 Linux 设备驱动开发中,工作队列(Workqueues)通常与中断处理程序结合使用,以处理中断下半部(bottom halves)的任务。提高系统响应速度: 在处理短时间的中断时,顶半部的快速响应使得系统能立即对其他中断或任务进行处理,从而提高整个系统的响应速度。// 获取每个 jiffy 的时间。tasklet是基于软中断实现的,tasklet是没有个数限制的,因为它内部是通过链表实现的。tasklet及中断的一个部分不能够脱离中断顶半部单独执行,在中断顶半部执行即将结束的。
2024-09-19 10:25:30
1154
1
原创 linux驱动开发-设备树
背景:在早期的嵌入式系统中,硬件配置信息通常硬编码在内核源码中,这导致了内核代码的冗长和难以维护。为了解决这个问题,设备树(Device Tree)被引入,使得硬件描述与内核代码分离,从而提高了内核的可移植性和可维护性。引入时间:设备树最初在PowerPC架构中引入,后来被ARM架构广泛采用,并逐渐成为Linux内核的标准配置方式。
2024-09-18 15:32:26
1108
原创 GPIO子系统
GPIO(通用输入输出,General Purpose Input/Output)子系统是Linux内核中用于控制和使用GPIO引脚的一组功能。GPIO引脚是微控制器和计算机系统中用于控制硬件组件的简单接口。GPIO引脚可以被配置为输入或输出,可以被用来连接按钮、灯、传感器等各种设备。
2024-09-18 15:31:17
639
原创 linux驱动开发-内核异步通知
在Linux驱动程序中,异步通知机制允许内核模块在特定事件发生时主动通知用户空间进程。这样的设计通常用于管理输入输出操作,确保用户程序可以及时获得数据或状态变化而无需频繁查询设备状态。
2024-09-17 18:18:59
596
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人