一键导入
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 职业分类
通用算法与数据结构实现参考——排序、搜索、动态规划、图算法、字符串处理的多语言惯用写法和模板代码(Python/C++/Java/Go/Cangjie)
仓颉语言算法与数据结构实现参考——排序、搜索、动态规划、图算法、字符串处理、集合操作的惯用写法和模板代码
仓颉编程语言基本概念和规则,当需要了解关键字、标识符、程序结构、变量定义(let/var/const)、值类型与引用类型、作用域规则、表达式(if/while/for-in/break/continue)、函数等基本概念时,应使用此 Skill
仓颉语言基本数据类型。当需要了解仓颉语言的整数、浮点、布尔、字符(Rune)、字符串(String)、Unit、Nothing、元组(Tuple)、数组(Array/VArray)、区间(Range)类型以及基本运算符的语法和规则时,应使用此 Skill。
仓颉程序与C程序互操作指导,包括foreign声明、CFunc、inout参数、unsafe块、调用约定、类型映射(基础类型/结构体/CPointer/VArray/CString)、C回调仓颉、内存管理等特性时,应使用此 Skill
提供仓颉集合数据类型使用文档,包括Array/ArrayList/HashMap/HashSet
| 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