Cangjie/Learning第一课10分钟读懂仓颉语法一个简单回文数程序入门教程【免费下载链接】Learning仓颉高校实践活动成果收集与展示项目地址: https://gitcode.com/Cangjie/LearningCangjie/Learning 是收集高校仓颉语言实践活动成果的展示仓库。这篇文章将带你10分钟读懂仓颉语法——以仓库里一个「判断一个数字是不是回文数」的仓颉小程序为教程示例手把手带你完成第一个仓颉编程练习从变量、函数到循环快速建立对仓颉语言的完整认知。1️⃣ 仓颉是什么初识 Cangjie/Learning 仓库仓颉Cangjie是一门面向未来的通用编程语言。Cangjie/Learning 仓库则汇集了高校学生在仓颉实训中的真实成果既有「简单的小程序」目录下的入门源码也有实训期间的 IDE 截图与录屏视频是一份带着学生视角的仓颉学习素材库。 上图正是学员在 VSCode 中同时打开多个仓颉项目的开发环境可以看到左侧资源管理器中清晰的src/、main.cj等标准仓颉工程结构。2️⃣ 第一个仓颉程序回文数程序完整代码所谓回文数就是正读反读都一样的数字比如12321、99。仓库中最有教学意义的入门程序就是它 源码文件判断一个数字是不是回文数.cj完整代码只有 18 行建议先整体通读一遍class Solution { func isPalindrome(x: Int64): Bool { if(x0) { return false } if (x ! 0 x % 10 0 ){ return false } var reversed: Int64 0 var number x while (number reversed ){ let digit number % 10 reversed reversed * 10 digit number / 10 } return number reversed || number reversed / 10 } }接下来 10 分钟我们把这段代码拆碎了讲。3️⃣ 10分钟读懂仓颉语法5个核心构件3.1 class把功能装进类里class Solution { ... }和 Java、Kotlin 一样仓颉也支持面向对象。所有功能都封装在Solution这个类中——这也是算法平台题目的标准写法。3.2 func输入输出类型一目了然func isPalindrome(x: Int64): Bool这一行信息量很大函数名isPalindrome参数x是 64 位整数Int64返回值是布尔类型Bool。仓颉是强类型语言每个变量的类型都写在明处对新手特别友好——不用猜一眼看懂。3.3 let vs var优先用不可变变量关键字含义例子let不可变绑定一旦赋值不能改let digit number % 10var可变变量可以反复更新var reversed: Int64 0 这是仓颉语法中一个值得立刻养成好习惯的点默认用let确实需要修改时才用var从语法层面杜绝意外改错变量的 Bug。3.4 while 循环与基础运算符while (number reversed ) { ... }循环体里出现的运算符都是你熟悉的老朋友%取余、/整除、*乘法以及逻辑与。仓颉的运算符风格与 C/Java 一脉相承迁移成本几乎为零。3.5 类型系统Int64 与 Bool代码中用到的Int6464 位整数和Bool布尔值是仓颉内置基础类型。数字运算时建议显式指定位宽如Int64可以避免溢出问题。上图展示了仓颉程序的典型开发流程在 VSCode 中编写.cj源码文件底部终端执行cjpm run一键编译运行输出结果[one, two, three, ...]。4️⃣ 回文数算法原理只反转一半数字这个程序最巧妙的地方在于它没有把整个数字反转而是只反转后半部分。分步拆解一下排除两种必然失败的情况负数if(x0) return false负号不可能对称以 0 结尾的非零数x % 10 0时直接返回 false因为120这类数不可能是回文。交替摘尾构建反转数while (number reversed)循环中每轮做两件事let digit number % 10摘下最低位然后reversed reversed * 10 digit把它接到反转数末尾同时number / 10去掉最低位。收尾判断当number reversed时停止说明已经处理到中间。此时两种情况都算回文number reversed位数为偶数如1221number reversed / 10位数为奇数中间那位已被反转数吃掉如12321。⏱️ 这个技巧把时间和空间都优化到了 O(log n) / O(1)是面试中的经典写法值得新手直接背下来。5️⃣ 仓颉编译运行速查三种常用命令写回文数程序用的是算法平台的写法实际开发中更常见的是独立工程。结合仓库中的实训截图整理三个最常用的命令cjpm init—— 初始化一个仓颉工程cjpm run—— 编译并运行开发阶段最常用cjsc xxx.cj—— 跳过编译直接解释执行单个.cj文件适合快速验证代码片段。上图是学员执行cjsc -v查看编译器版本的真实截图当前为 Cangjie Compiler 0.53.13。右侧还能看到项目里server.cj、client.cj等仓颉源码文件。6️⃣ 走向实战从回文数到力扣刷题与 C 语言互调学完语法之后Cangjie/Learning 仓库里的截图展示了仓颉学习的两条进阶路线路线一算法实战。力扣平台已支持仓颉语言提交仓库中收录了学员刷题一次通过的截图——从回文数这样的简单题开始用仓颉也能顺畅地刷完全站题目。路线二与 C 语言互调CFFI。仓颉支持直接调用 C 函数下图是学员用仓颉调用 C 语言图形接口、绘制正弦波的实例——代码中SetPixel逐点计算60.0 * sin(0.1 * x)右侧窗口实时显示出波浪曲线直观展示了仓颉强大的互操作性。7️⃣ 仓库学习资料速查表 ️资料相对路径回文数入门程序源码判断一个数字是不是回文数.cj简单的小程序目录简单的小程序/实训截图与视频素材实训期间的截图和视频/实训录屏视频679519032bb193d94af9ae09a18cb057.mp4仓库说明readme.txt✅ 写在最后回顾一下这 10 分钟的收获仓颉用class组织代码、用func定义类型明确的函数、用let/var区分不可变与可变变量配上与 C/Java 高度相似的运算符和循环——上手难度对新语言学习者非常友好。把仓库里的回文数程序抄一遍、改一改比如把Int64换成别的输入、加入测试用例你的仓颉编程之路就算正式开始了 。【免费下载链接】Learning仓颉高校实践活动成果收集与展示项目地址: https://gitcode.com/Cangjie/Learning创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
