- 博客(370)
- 资源 (17)
- 收藏
- 关注
原创 kotlin协程-基础设施篇-协程创建与启动:SafeContinuation
本文介绍了Kotlin协程的基础实现,包括协程的创建和启动方式。通过分析createCoroutine和startCoroutine函数,说明了协程体的执行流程和完成回调机制。文章还探讨了带接收者的函数类型在协程中的应用,展示了如何为协程体提供作用域支持。此外,通过示例代码演示了如何使用suspend Lambda表达式创建协程,并利用resume方法启动协程执行过程。这些内容为后续深入理解Kotlin协程的挂起机制奠定了基础。
2025-11-02 12:17:40
940
1
原创 kotlin协程-基础概念篇
摘要 协程是一种轻量级的用户态线程,具有挂起和恢复功能,允许函数在执行中主动让出控制权并从断点继续执行。其特点包括:用户态控制(无需内核介入)、协作式调度(显式挂起/恢复)和状态保存(保留执行上下文)。相比线程,协程更轻量,体现在创建/销毁成本低、上下文切换开销小、栈内存管理灵活且调度为协作式。协程主要解决异步编程复杂性(避免回调地狱)和实现轻量级并发。协程分为有栈协程(独立调用栈)和无栈协程(状态机实现),以及对称协程(平等调度)和非对称协程(主从调度)。协程通过用户态调度避免了内核交互的开销,适合高并发
2025-11-02 12:16:51
830
原创 HarmonyOS应用开发者的宝藏APP-HMOS代码工坊-组件拖拽
本文介绍了在HarmonyOS中实现图片拖拽功能的方法。主要包括:1)支持拖拽的基础组件配置;2)图片拖拽到目标区域的实现步骤,包括数据接收处理和落位动画效果;3)自定义拖拽背景的实现要点。文章还提供了相关代码示例和效果演示,并推荐了学习资源。通过设置draggable、allowDrop等属性和实现onDrop、onDragStart等事件,开发者可以轻松实现拖拽交互功能。
2025-10-22 15:22:26
887
原创 HarmonyOS应用开发者的宝藏APP-HMOS代码工坊-组件动效
本文介绍了在HarmonyOS中实现数字翻页动效的方法。通过使用三个Text组件和一个Slider控件,结合绕Y轴旋转效果,实现了数字翻页动画。核心思路是:左侧Text显示翻页后数字,右侧两个Text叠加显示当前和下一页数字,通过Slider控制旋转角度实现翻页效果。文章详细讲解了rotate属性的参数设置,并提供了从0-180度到0-360度旋转的优化方案,实现了连续翻页功能。代码示例展示了关键实现步骤,最终效果可通过滑动条控制数字的动态翻转。
2025-10-22 15:20:06
449
原创 HarmonyOS应用开发者的宝藏APP-HMOS代码工坊-组件堆叠滑动折叠效果(二)
本文介绍了如何实现一个组件堆叠效果中的物品栏部分。通过使用Stack布局和zIndex属性实现层级覆盖,解决了嵌套滑动冲突问题。关键点包括:1)使用Stack布局管理层级;2)通过nestedScroll属性解决内外Scroll滑动冲突;3)设置margin留出物品卡片展示空间;4)定义常量控制各个区域高度。最终实现了可滚动、层次分明的物品栏效果,为后续商品列表部分的实现奠定了基础。
2025-10-10 09:20:04
10240
原创 HarmonyOS应用开发者的宝藏APP-HMOS代码工坊-组件堆叠滑动折叠效果(一)
本文拆解并复刻了"HMOS代码工坊"中的组件堆叠滑动折叠效果。文章首先分析了页面结构,将其划分为四个主要部分,并详细描述了动画效果的变化过程。接着提出了实现思路:通过两个嵌套滑动组件监听滑动事件,动态计算搜索框高度、透明度等参数,使用Stack布局实现层次叠加效果。最后展示了前两个部分的实现代码和效果演示,包括搜索框高度随滑动动态变化的实现方法。后续将继续实现剩余部分的交互效果。
2025-10-08 18:57:46
10388
原创 使用仓颉语言开发鸿蒙应用-初窥门径
这篇文章介绍了如何使用仓颉语言开发一个5x5的开关灯小游戏。作者从创建项目开始,详细讲解了状态管理、UI布局和事件处理的实现过程。文中重点说明了仓颉语言中ObservedArray的特殊用法,以及如何通过二维数组来维护游戏状态。当玩家点击某个格子时,会切换该格子及其上下左右相邻格子的颜色状态(红/黑),直到所有格子变为红色则游戏胜利。文章还比较了仓颉语言与ArkTS在语法上的差异,展示了日志打印的两种方式,并提供了完整的游戏逻辑实现代码。
2025-10-08 18:56:43
700
原创 仓颉语言编辑与构建操作完全指南:深入解析cjc与cjpm工具链
仓颉语言工具链解析:本文系统介绍了仓颉编程语言的开发环境,重点剖析了编译器cjc和包管理器cjpm两大核心工具。cjc编译器支持多文件编译、条件编译等特性,提供丰富的优化和调试选项;cjpm包管理器则负责依赖管理、项目构建等全生命周期管理。文章详细展示了二者的配置选项、使用方法和协同工作流,并涉及调试技巧、安全构建等实践内容。仓颉构建系统以简单易用、高效可靠为特点,为开发者提供了一套完整的现代语言工具链。
2025-09-27 16:49:31
843
原创 HarmonyOS 应用开发者的宝藏APP-HMOS代码工坊
摘要: 华为发布"HMOS代码工坊"应用,革新鸿蒙开发体验。该工具支持真机实时预览,内置数百示例代码,提供组件、样例、实践三大模块,实现"所见即所得"开发。开发者可拖拽修改参数并直接复制生成代码,大幅降低调试成本。同时支持手机、折叠屏、穿戴设备等全场景开发,兼容"1+8+N"战略。应用已开源并上架华为应用市场,通过可视化组件和源码共享加速生态共建,成为连接创意与落地的关键工具。
2025-09-27 15:54:20
10320
原创 仓颉与C语言互操作全面指南
安全高效地复用现有C代码库在性能关键路径使用底层优化逐步迁移大型C项目到仓颉构建混合语言系统架构更智能的内存管理集成自动化绑定生成工具增强的调试支持更丰富的类型自动转换通过合理利用仓颉的互操作特性,开发者可以在享受现代语言特性的同时,继续保持与C生态系统的无缝集成,实现最佳的生产力和性能平衡。
2025-08-28 18:36:46
1135
原创 仓颉语言中的反射与注解机制
仓颉中的注解是通过特殊的标注的class实现的:@Annotation // 必须标注 public class MyAnnotation { // 必须至少有一个const init函数 const init(value: String) { this.value = value } public let value: String }仓颉语言的反射与注解系统为开发者提供了强大的元编程能力,使得框架开发、代码生成和动态行为修改成为可能。通过合理使用这些特性,可以显著提升代码的灵活性和可扩展性。
2025-08-28 17:53:23
692
原创 仓颉编程语言中的宏系统:概念、Tokens与quote表达式详解
仓颉编程语言中的宏系统是一种强大的编译时元编程机制,主要通过Token和Tokens类型操作代码片段。宏分为非属性宏和属性宏两类,使用@符号调用。quote表达式简化了Token序列构造,支持插值和多行模板。宏可用于实现调试工具、DSL构建和编译期验证等场景。最佳实践包括合理嵌套、错误报告机制和性能优化。掌握Tokens操作和quote使用是仓颉元编程的关键,建议从简单宏入手逐步深入。
2025-08-26 14:16:44
374
原创 仓颉编程语言中的HTTP与WebSocket编程详解
简洁的API设计:通过构建器模式和高层抽象简化开发协议完整性:全面支持HTTP/1.1、HTTP/2和WebSocket协议性能优化:内置连接池、压缩等优化手段安全内置:提供TLS、认证等安全功能可扩展架构:支持中间件、过滤器等扩展点掌握这些网络编程技术,开发者可以高效构建Web服务、实时通信系统等各类网络应用。建议从简单示例开始,逐步深入理解协议细节和高级特性,最终开发出高性能、高可靠的网络服务。
2025-08-26 10:32:49
496
原创 仓颉网络编程与Socket编程详解
分层设计:清晰分离传输层和应用层关注点多协议支持:统一接口支持TCP、UDP、HTTP等协议资源安全:RAII模式确保资源正确释放错误完备:完善的异常体系覆盖各种网络场景性能优化:合理的默认配置与可调参数平衡掌握仓颉网络编程需要理解Socket抽象的核心概念,熟悉不同协议的特性差异,并遵循资源管理和错误处理的最佳实践。这些知识是构建分布式系统、网络服务等现代应用程序的基础。
2025-08-25 11:36:54
728
原创 仓颉编程语言基础I/O操作详解
摘要:仓颉编程语言通过流(Stream)抽象实现统一I/O机制,将输入输出视为字节数据流。流分为节点流(直接对接数据源如文件、网络)和处理流(增强功能如缓冲、字符串处理)。主要特性包括:基于管道模型的分段读写、分层设计(节点流+处理流组合)、缓冲优化减少I/O次数、统一接口覆盖多种数据源。典型应用包括文件操作、标准流重定向和缓冲优化等,开发者需掌握流分类及组合方式以构建高效I/O应用。
2025-08-25 11:18:57
948
原创 仓颉编程语言并发编程核心机制详解
仓颉编程语言采用实现并发编程,将M个用户态轻量级线程(称为"仓颉线程")映射到N个系统原生线程上执行。这种模型结合了用户态线程的轻量性和内核态线程的多核利用能力,既保持了创建线程的高效性,又能充分利用多核处理器资源。
2025-08-24 20:24:56
381
原创 仓颉编程语言中的异常处理机制详解
仓颉编程语言的异常处理机制提供了完整的错误管理方案,包括基于类的异常体系和Option类型两种互补方式。系统将异常分为Error(系统错误)和Exception(可捕获异常),支持自定义异常继承体系。通过throw抛出、try-catch-finally捕获处理异常,并提供ArithmeticException等常见运行时异常。Option类型为可能空值提供类型安全处理,推荐使用模式匹配而非getOrThrow。最佳实践包括:异常仅用于异常情况、预检查代替捕获、特例模式应用等,强调在性能与安全性间取得平衡,
2025-08-23 12:45:00
1388
原创 仓颉编程语言中的包管理机制详解
《仓颉编程语言包管理机制解析》摘要: 仓颉语言采用包-模块两级组织架构,包作为基本编译单元,模块作为发布单位。包通过声明语法、目录结构和命名规则实现代码组织,提供private/internal/protected/public四级可见性控制。导入机制支持多种方式,程序入口为main函数。文章详细阐述了包的结构设计、访问控制、导入规则及执行机制,并提供了大型项目管理的最佳实践方案,包括循环依赖处理、命名冲突解决和可见性设计原则,帮助开发者构建模块化、可维护的高质量代码。
2025-08-23 10:45:00
900
原创 仓颉编程语言中的Collection类型详解
仓颉编程语言的Collection类型提供了高效的数据集合管理工具,主要包括三类核心数据结构:ArrayList(基于数组的动态列表)、HashSet(基于哈希表的无序集合)和HashMap(键值对映射)。这些集合类型具有类型安全、高性能和统一的API设计等特点,分别适用于不同场景:ArrayList适合随机访问,HashSet用于快速查找和去重,HashMap则用于键值存储。此外,Iterable接口为集合提供了标准迭代能力,Collections工具类则包含常用算法操作。开发者应根据元素唯一性、访问模式
2025-08-22 11:40:15
986
原创 仓颉编程语言中的扩展机制详解
仓颉编程语言的扩展机制允许在不修改原始类型定义的情况下为现有类型添加功能。扩展分为直接扩展和接口扩展两类:直接扩展可添加成员函数和属性,但不能访问私有成员;接口扩展则使类型实现新接口。扩展遵循严格的访问规则,包括孤儿规则(禁止定义不相关的接口扩展)和可见性规则。最佳实践建议合理使用扩展来增强第三方库功能或分离关注点,但避免滥用导致命名冲突或代码分散。扩展机制提供了灵活的类型功能增强方式,同时确保类型安全性和代码可维护性。
2025-08-22 11:39:37
384
原创 仓颉编程语言中的泛型类型系统:泛型结构体、泛型枚举、泛型类型的子类型关系
摘要:仓颉编程语言的泛型系统支持结构体、枚举等参数化类型。泛型结构体通过类型参数实现数据复用,是值类型且不支持继承。Option<T>枚举用于安全处理可能为空的值。泛型类型默认不型变,确保类型安全,仅内建类型如元组和函数具有特定型变规则。泛型约束通过where子句限制类型参数能力。该系统在保证安全性的同时提供了灵活的抽象能力。
2025-08-21 10:43:18
768
原创 仓颉语言中的泛型系统:概述、函数、接口与类
《仓颉语言泛型系统解析》摘要:仓颉语言通过参数化类型实现强大的泛型编程能力,支持在函数、类、接口、结构体和枚举中应用泛型。系统包含类型形参、变元和实参三个核心概念,通过where子句实现类型约束。特性包括:全局/局部泛型函数、泛型接口继承、类静态成员限制、枚举泛型应用等。最佳实践建议合理命名、适度约束,并利用类型推导和反射等高级特性。该系统在保证类型安全的同时提供高度抽象能力,是构建复用代码库的关键工具。
2025-08-21 10:42:32
594
原创 仓颉语言中的子类型关系与类型转换机制
仓颉语言的类型系统采用严格的子类型关系,通过继承、接口实现等方式建立类型兼容性规则。系统支持元组的协变、函数的逆变/协变,预设自反性、底类型等基础关系。泛型采用不变规则,内建类型有特殊型变处理。类型转换需显式操作,提供is/as运行时检查。C互操作通过精确类型映射实现。系统还包含This类型、单继承限制等特性,在保持类型安全的同时支持灵活编程。开发者需掌握子类型规则和转换机制,特别是泛型不变性和函数型变特性,以构建高效可靠的程序。
2025-08-20 11:45:30
886
原创 仓颉语言中的泛型系统:概述、函数、接口与类
本文概述了仓颉语言中的泛型系统,包括其核心概念和实现方式。泛型通过参数化类型实现代码复用与类型安全,支持在函数、类、接口、结构体和枚举中使用。关键特性包括类型形参/实参、类型构造器、泛型约束(where子句)以及静态成员限制等。文章详细介绍了泛型在不同场景下的应用(如容器类型、接口继承等)和最佳实践(命名规范、约束设计等),并指出泛型系统提供了强大的抽象能力,平衡了灵活性与安全性,是构建高效代码库的关键。
2025-08-20 11:42:50
954
原创 仓颉语言中的子类型关系与类型转换机制
《仓颉语言类型系统解析》摘要(150字): 仓颉语言构建了严谨的类型系统,核心基于子类型关系实现类型安全。系统通过继承/接口实现建立基本子类型,元组协变与函数型变(参数逆变、返回协变)确保复合类型安全。泛型采用不变性规则,内建类型保留特殊型变。显式转换机制(is/as操作符)和严格的C互操作类型映射保障运行时安全。高级特性包括This类型、单继承限制等,整体在静态安全与灵活性间取得平衡,特别适合系统级开发。开发者需重点掌握子类型规则、泛型不变性及显式转换规范。
2025-08-20 11:42:17
560
原创 仓颉语言中的类、接口与属性
仓颉编程语言的面向对象特性解析:文章系统介绍了仓颉语言中类(class)、接口(interface)和属性(property)三大面向对象核心概念。类作为引用类型支持继承和多态,通过构造函数和成员变量定义对象蓝图;接口定义抽象行为,支持多继承和默认实现;属性则通过getter/setter封装数据访问。文章详细阐述了各特性的定义语法、使用方法和应用场景,并提供了最佳实践建议,如遵循SOLID原则、组合优于继承等。这些特性共同构成了仓颉语言实现模块化、可复用代码的基础设施。
2025-08-19 17:37:38
928
原创 仓颉编程语言中的模式匹配与match表达式详解
模式匹配是仓颉语言中一种强大的控制流结构,它允许开发者根据数据的形状或内容来分支代码执行路径。与传统基于值的条件分支(如if-else)不同,模式匹配能够同时检查数据的类型和结构。模式匹配提供结构化数据解构能力支持多种模式类型与枚举完美配合使代码更简洁安全区分可反驳与不可反驳模式保证模式匹配的严谨性指导正确的模式使用场景match表达式替代复杂的条件逻辑支持守卫条件和嵌套模式编译器保证穷尽性检查性能经过优化优先使用模式匹配处理复杂条件合理利用编译器检查保证完整性。
2025-08-19 17:36:17
1018
原创 仓颉编程语言中的枚举类型与Option类型详解
仓颉编程语言的枚举类型(enum)是一种代数数据类型,用于表示类型所有可能取值。枚举通过enum关键字定义,包含多个构造器,支持参数传递和模式匹配。Option类型是标准库中的泛型枚举,用于处理值存在(Some)或不存在(None)的情况,避免空指针异常。枚举与模式匹配结合使用能实现类型安全的错误处理、状态机等功能。设计时应遵循语义明确、变体正交等原则。枚举和Option类型构成了仓颉类型系统的核心特性,能显著提升代码的健壮性和可维护性。
2025-08-18 20:22:24
1096
原创 仓颉编程语言中的结构类型(struct)与mut函数详解
摘要:仓颉编程语言中的结构类型(struct)是值类型的复合数据类型,具有拷贝语义和栈分配特性,适用于组织相关数据。struct通过成员变量、构造函数和成员函数构建,特别强调使用mut函数显式管理状态修改。mut函数需通过可变变量调用,确保线程安全与代码清晰性。与class相比,struct无继承支持但更轻量安全。设计时应遵循最小化可变原则,结合值对象模式等优化性能。struct与mut函数的结合使仓颉在函数式安全与必要状态管理间取得平衡,适合构建高效可靠的值对象。(149字)
2025-08-18 20:21:39
961
原创 仓颉语言函数调用语法糖与操作符重载详解
本文详细介绍了仓颉语言的函数调用语法糖与操作符重载特性。主要内容包括:1)三种函数调用语法糖(尾随Lambda、Flow表达式和变长参数)的使用方法及适用场景;2)操作符重载的基本概念与实现方式,涵盖算术、比较、下标访问等常见操作符;3)操作符重载的最佳实践与注意事项。这些特性能显著提升代码表达力,支持DSL构建,但需注意语义一致性和性能影响。通过合理运用这些功能,开发者可以编写更简洁、直观且高效的仓颉代码。
2025-08-17 14:28:26
757
原创 仓颉语言中的Lambda表达式与闭包
在仓颉编程语言中,Lambda表达式是一种简洁的匿名函数表示方法,能够显著减少代码冗余并提高开发效率。。其中=>之前为参数列表,多个参数之间使用逗号分隔;=>之后为Lambda表达式体,可以包含一组表达式或声明序列。
2025-08-17 14:27:44
1184
原创 仓颉编程语言函数类型与嵌套函数深度解析
仓颉语言的函数编程特性解析 本文系统介绍了仓颉语言中作为一等公民的函数类型及其应用。主要内容包括:1)函数类型的定义与特性,支持类型安全、泛型和组合;2)函数子类型系统的逆变协变规则;3)嵌套函数的定义规则、作用域和闭包机制;4)高阶函数与嵌套函数的结合应用;5)性能优化策略与典型应用场景。文章强调通过合理使用函数类型和嵌套函数,可以实现类型安全的高阶抽象、优雅的状态封装和逻辑组织,同时需要注意避免常见陷阱如意外捕获和内存泄漏。
2025-08-16 17:15:48
862
原创 仓颉编程语言函数机制详解--函数定义和函数调用
《仓颉语言函数定义与调用详解》摘要:本文系统介绍了仓颉语言的函数机制,包括基础语法、参数处理(默认/可变/命名参数)、返回值(单/多值/隐式返回)、调用方式(标准/命名/操作符调用)等核心概念。重点分析了高阶函数、函数重载、特殊函数类型(扩展/操作符/内联)等高级特性,并提供了函数设计原则(单一职责、明确命名)和性能优化建议(尾递归、内联)。仓颉通过强类型系统和丰富的函数特性,支持函数式编程范式,同时保持代码的安全性和可维护性。
2025-08-16 17:14:53
1131
原创 仓颉编程语言复合数据类型(下)
本文介绍了仓颉编程语言中的复合数据类型:1. 元组(Tuple)是固定长度、不可变的异构数据集合,适用于多返回值、临时数据组合等场景;2. 数组(Array)是同类型元素的可变集合,支持动态扩容和高效随机访问;3. 区间(Range)表示数值序列,用于循环和切片操作;4. Unit类型表示无意义值,用于无返回值的操作;5. Nothing类型表示永远不会正常返回的计算。文章详细说明了各类型的特点、定义方式、操作方法及适用场景,并提供了类型选择指南和最佳实践建议,帮助开发者根据数据特性合理选择数据类型。
2025-08-15 09:49:49
741
原创 仓颉编程语言基础数据类型详解(上)
摘要:仓颉编程语言提供了一套完整的基础数据类型系统,包括整数(8-64位有/无符号)、浮点数(16-64位)、布尔型、字符(Unicode支持)和字符串(UTF-8编码)。各类型具有严格的操作规范,整数运算需显式类型转换,浮点数遵循IEEE754标准并提供精度控制,字符支持全Unicode集,字符串不可变且最大支持4GB。语言特性强调类型安全,操作符系统涵盖算术、关系、逻辑和位运算,并采用显式类型转换策略。
2025-08-15 09:48:49
666
原创 仓颉的基本概念:标识符、程序结构、表达式和函数
本文系统介绍了仓颉编程语言的基础概念,包括标识符系统、程序结构、表达式系统、函数定义等核心内容。仓颉的标识符支持Unicode字符,采用NFC规范化处理,并提供了原始标识符语法。程序组织采用模块化设计,基于包和导入机制。表达式系统类型安全,支持多种运算符和特殊表达式。函数作为一等公民,支持高阶函数、重载等特性。此外还介绍了控制结构、变量声明等基础语法。仓颉语言通过精巧的设计平衡了开发效率和运行性能,为开发者提供了简洁而强大的编程体验。
2025-08-14 11:51:22
1187
原创 仓颉-认识仓颉语言(开篇)
摘要: 仓颉编程语言(HarmonyOS NEXT)作为面向全场景开发的现代语言,融合高效编程、安全可靠、轻松并发和卓越性能四大特性。其多后端架构(CJNative/CJVM)兼顾性能与跨平台需求,简洁语法(插值字符串、模式匹配等)提升开发效率,静态类型系统与自动内存管理保障安全性。支持函数式、面向对象和命令式多范式编程,提供轻量级线程模型和Future/Promise简化并发。宏系统与DSL支持增强元编程能力,标准库与CJPM包管理完善工具链
2025-08-14 11:22:16
1036
原创 如何申请软著,需要准备哪些材料?
中国版权保护中心软件著作权申请流程指南:需实名注册账号后,选择"计算机软件著作权登记申请",填写软件信息时需注意名称后缀必须包含"软件/系统/平台"。申请材料包括软件源程序前30页和后30页(每页50行以上)及文档材料(如用户手册)。填写开发环境、技术特点等信息有严格字数限制。提交后需打印签章页上传,审批周期约1.5-2个月,需每日查看进度及时补正。特别注意软件名称格式、材料一致性等常见驳回点。
2025-07-26 15:45:48
845
原创 鸿蒙-DevEco插件:Json字符串转ArkTS对象,并且生成解析、拷贝方法
摘要: JsonToArkTs是一款针对鸿蒙应用开发的IDEA插件,旨在简化ArkTS状态管理V2中@ObservedV2和@Trace装饰器的代码生成工作。通过解析JSON数据结构,插件自动生成包含@Trace注解的TypeScript类,支持可空属性与默认值两种模式,并可选择生成fromJSON和fromObject解析方法。该插件能处理嵌套对象和列表属性合并,但不支持混合类型的数组项。用户需手动下载JAR包安装,通过Generate菜单操作,提供JSON格式化、代码生成等功能,有效提升鸿蒙应用开发效率
2025-07-05 17:28:37
1231
jstl.jarANDstanderd.jar
2015-03-01
ajax_读取服务器文件内容.js
2014-11-19
代码格式化工具
2014-05-18
TranslatePlugin
2016-07-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅