一键导入
cangjie-basic-programming-concepts
仓颉编程语言基本概念和规则,当需要了解关键字、标识符、程序结构、变量定义(let/var/const)、值类型与引用类型、作用域规则、表达式(if/while/for-in/break/continue)、函数等基本概念时,应使用此 Skill
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
仓颉编程语言基本概念和规则,当需要了解关键字、标识符、程序结构、变量定义(let/var/const)、值类型与引用类型、作用域规则、表达式(if/while/for-in/break/continue)、函数等基本概念时,应使用此 Skill
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
通用算法与数据结构实现参考——排序、搜索、动态规划、图算法、字符串处理的多语言惯用写法和模板代码(Python/C++/Java/Go/Cangjie)
仓颉语言算法与数据结构实现参考——排序、搜索、动态规划、图算法、字符串处理、集合操作的惯用写法和模板代码
仓颉语言基本数据类型。当需要了解仓颉语言的整数、浮点、布尔、字符(Rune)、字符串(String)、Unit、Nothing、元组(Tuple)、数组(Array/VArray)、区间(Range)类型以及基本运算符的语法和规则时,应使用此 Skill。
仓颉程序与C程序互操作指导,包括foreign声明、CFunc、inout参数、unsafe块、调用约定、类型映射(基础类型/结构体/CPointer/VArray/CString)、C回调仓颉、内存管理等特性时,应使用此 Skill
仓颉语言类。当需要了解仓颉语言的类定义、抽象类、构造函数(init/主构造函数)、终结器(~init)、继承(单继承/sealed)、重写(override)、重定义(redef)、成员变量、成员函数、属性(prop)、访问修饰符、This类型、对象创建等特性时,应使用此 Skill。
提供仓颉集合数据类型使用文档,包括Array/ArrayList/HashMap/HashSet
基于 SOC 职业分类
| name | cangjie-basic-programming-concepts |
| description | 仓颉编程语言基本概念和规则,当需要了解关键字、标识符、程序结构、变量定义(let/var/const)、值类型与引用类型、作用域规则、表达式(if/while/for-in/break/continue)、函数等基本概念时,应使用此 Skill |
以下标识符是仓颉语言的关键字,不要用作程序元素命名(如有特殊情况需要,请用反引号 ` 转义为原始标识符):
Bool、Rune、Float16、Float32、Float64、Int8、Int16、Int32、Int64、IntNative、UInt8、UInt16、UInt32、UInt64、UIntNative、Array、VArray、String、Nothing、Unitbreak、case、catch、continue、do、else、finally、for、if、match、return、spawn、try、throw、whileas、abstract、class、const、enum、extend、func、foreign、import、init、interface、let、macro、main、mut、open、operator、override、package、private、prop、protected、public、redef、static、struct、super、synchronized、this、This、type、unsafe、wherefalse、truequoteXID_Start 字符(包括中英文字母)开头,后跟 XID_Continue 字符;或以 _ 开头后跟至少一个 XID_Continue 字符abc、_abc、仓颉`while`、`if`struct、class、enum、interface)、main 入口函数enum/interface 仅支持成员函数(不支持成员变量)修饰符 名称: 类型 = 值let:不可变,只能赋值一次var:可变,可多次赋值const:编译时常量const G = 6.674e-11const init 和 const funcstruct,VArray...):赋值拷贝数据,let 阻止所有修改。一般存放在栈空间。class,String,Array...):赋值共享引用,let 阻止重新赋值但不阻止修改引用对象的数据。存放在托管内存,涉及 GC。注意:
Array是用struct定义的,但把数组数据存放在托管内存中(结构体中一个引用类型成员),赋值后两个变量共享底层存储,修改互相可见
{} 创建作用域{exprs}:代码块只是便于文档描述而提出的概念,仓颉不允许独立的 {exprs} 块作为表达式(如 let r = { let x = 2; x ** 3 } 不合法)。代码块只能依附于 if/while/for-in/match/函数等表达式使用(构造这些复合表达式),一般情况下,含有代码块结构的表达式,其值/类型为所执行代码块(分支)中最后一个表达式的值/类型(空块类型为 Unit,值为 ())if (cond) { exprs1 } else { exprs2 },cond 是 Bool 类型表达式else if 链式使用else 时类型由上下文或各分支最小公共父类型决定,值为所执行分支最后一个表达式的值,无 else 时类型始终为 Unitlet pattern <- expr 做模式匹配,详见 cangjie-pattern-match Skillwhile (cond) { exprs } 和 do { exprs } while (cond),cond 是 Bool 类型表达式Unitlet pattern <- expr 做模式匹配for (item in sequence) { exprs },其中 sequence 类型须实现 Iterable<T>_ 占位for ((x, y) in arr)where 子句过滤迭代:for (i in 0..8 where i % 2 == 1)Iterable<T>,可直接用 for-in 遍历cangjie-for Skillbreak 退出循环,continue 跳至下一次迭代Nothingmatch(expr) { case pattern => exprs ... },expr 是待匹配值,pattern 是候选模式=> 左侧模式被匹配后,将执行右侧的 exprs 并跳过后续 case 分支cangjie-pattern-match Skillfunc name(params): ReturnType { exprs } 定义name: Typecangjie-function Skillcjpm initcjpm buildcjpm runcjpm testcangjie-project-management Skill