一键导入
cangjie-class
仓颉语言类。当需要了解仓颉语言的类定义、抽象类、构造函数(init/主构造函数)、终结器(~init)、继承(单继承/sealed)、重写(override)、重定义(redef)、成员变量、成员函数、属性(prop)、访问修饰符、This类型、对象创建等特性时,应使用此 Skill。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
仓颉语言类。当需要了解仓颉语言的类定义、抽象类、构造函数(init/主构造函数)、终结器(~init)、继承(单继承/sealed)、重写(override)、重定义(redef)、成员变量、成员函数、属性(prop)、访问修饰符、This类型、对象创建等特性时,应使用此 Skill。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
当需要构建鸿蒙应用项目时,使用此 Skill 执行构建流程。此 Skill 包含完整的构建命令、构建流程说明、构建失败处理流程。构建脚本会自动执行依赖安装、仓颉预编译、资源生成、编译、打包等步骤。
在鸿蒙应用(Cangjie)开发中,当需要使用 stdx 拓展库(如 crypto、encoding、net、log、actors 等),或在构建/链接阶段出现 stdx 相关错误时,使用此 Skill 获取/解压 stdx 包,并指导在 entry/cjpm.toml 中正确配置 bin-dependencies.path-option。
在进行仓颉工程或鸿蒙应用开发时的第一步,应该优先读取该SKILL,用来确定后续的开发步骤。
仓颉语言内置注解。当需要了解仓颉 SDK 提供的内置注解(@sourcePackage/@sourceFile/@sourceLine/@When/@FastNative/@Frozen/@Attribute/@Deprecated)的用途、语法和最优实践时,应使用此 Skill。
仓颉语言附录参考。当需要查阅仓颉语言的关键字列表、运算符优先级与结合性、运算符重载函数签名、运行时环境变量配置、包兼容性规则、TokenKind枚举类型时,应使用此 Skill。
仓颉标准库 Array 类型详细指南。当需要了解 Array 的构造、元素访问、切片、拼接、查找、排序、拷贝、反转、映射、扁平化等操作的完整 API 和用法时,应使用此 Skill。
| name | cangjie-class |
| description | 仓颉语言类。当需要了解仓颉语言的类定义、抽象类、构造函数(init/主构造函数)、终结器(~init)、继承(单继承/sealed)、重写(override)、重定义(redef)、成员变量、成员函数、属性(prop)、访问修饰符、This类型、对象创建等特性时,应使用此 Skill。 |
class ClassName { ... } 声明,仅可在顶层作用域定义struct 的值类型行为不同)abstract class — 可声明抽象函数(无函数体),不能实例化private;非抽象子类须实现所有抽象函数open 修饰符可选sealed abstract class — 仅同包内可继承,隐含 public/open 语义let/var 定义,通过对象访问。可省略初始值(须有类型标注)static let/static var,无静态初始化器时须有初始值,通过类型名访问static init() { ... } — 每个类最多一个,须初始化所有未初始化的静态成员init(params) { ... } — 须初始化所有未初始化的实例成员变量ClassName(let x: T, var y: T) {} — 参数名前缀 let/var 同时定义成员变量super() 调用public init()~init)~init() { ... } — 在垃圾回收时触发,用于释放系统资源open。每个类最多一个。不能在扩展中定义thisstatic func,通过类型名访问,不能访问实例成员open,须为 public 或 protected| 修饰符 | 可见性 |
|---|---|
private | 仅在类定义内 |
internal(默认) | 当前包及子包 |
protected | 当前模块及子类 |
public | 全局可见 |
This 类型This 是当前类类型的占位符,仅可用作实例方法返回类型This 的方法时,返回类型被识别为子类类型This 类型表达式,返回类型推断为 Thislet obj = ClassName(args) — 调用构造函数public 实例成员和实例函数var 成员可通过对象修改;let 成员不可修改class B <: A { }。A 须为 open 或 abstractprivate、非构造函数成员Objectopen 修饰的成员被继承时,open 修饰符也会被继承sealed 抽象类sealed abstract class — 仅同包内可继承sealed 隐含 public/open 语义sealed 的子类可不是 sealed,仍可被 open/sealed 修饰open 修饰,则其子类可在包外被继承init 中:使用 super(args) 或 this(args) 作为函数体第一个表达式(互斥)super(args) 但不可用 this(args)super() — 父类须有无参构造函数open;子类使用 override(可选)。基于运行时类型的动态分派redef(可选)。基于类型名的静态分派prop name: Type { get() { ... } } — 只读属性(类似 let)mut prop name: Type { get() { ... } set(v) { ... } } — 读写属性(类似 var)() -> T — 读取属性时执行(T) -> Unit — 属性被赋值时执行mut 限制Bool、Unit、Nothing、String、Range、enum 类型不能有 mut 属性public、private、protected、internal)open、override、redef — 允许在子类中重写/重定义mut,子类也须有 mut,类型相同obj.prop)ClassName.prop)。可为 static mut prop