首页/新闻资讯/正文详情

Cangjie/Learning第一课:10分钟读懂仓颉语法,一个简单回文数程序入门教程

发布时间:2026/9/24 23:55:05 来源:云帆数科 栏目:资讯中心
Cangjie/Learning第一课:10分钟读懂仓颉语法,一个简单回文数程序入门教程
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),仅供参考

相关推荐

STM32调试踩坑指南:从环境搭建到OTA的完整排查链
STM32调试踩坑指南:从环境搭建到OTA的完整排查链

1. 环境搭建阶段的三连坑:芯片包、驱动和下载线我把话放在前头:STM32开发调试中最消耗耐心的事情,往往不是代码逻辑,而是“程序怎么都下载不进去”。我第一次接触STM32的时候,花了一个周末才把板子点亮,期间… · 2026/9/24 23:55:05

为什么端口总数是65536但可用只有65535?16位端口设计深度解析
为什么端口总数是65536但可用只有65535?16位端口设计深度解析

1. 先掰扯清楚:端口数量到底是65535还是65536每次聊到"端口数量",总会看到两种说法:一种是"端口最多65535个",另一种更严谨的说法是"端口总数是65536个,但可用的是65535个"。这两种说法… · 2026/9/24 23:55:05

从 Fine-tune 到 Agentic Workflow:ASR 应用开发的进阶之路
从 Fine-tune 到 Agentic Workflow:ASR 应用开发的进阶之路

📌 为什么你的 ASR 应用总是"差点意思"? 如果你做过语音相关的 AI 应用,大概率遇到过这些问题: 😩 调用了大厂的 ASR API,转写准确率在通用场景还行,一到专业领域就"翻车"… · 2026/9/24 23:54:59

深度学习新闻分类推荐系统:从TextCNN到个性化推荐
深度学习新闻分类推荐系统:从TextCNN到个性化推荐

简介:这份基于深度学习的新闻分类推荐系统Python实现源码,是专为课程设计与期末大作业准备的高分项目,下载后无需修改即可运行,适用于需要快速交付完整课题的高校学生。系统涵盖新闻数据预处理、文本分类模型训练、推荐逻辑展示等… · 2026/9/24 23:59:53

汽车电子底层软件开发:AUTOSAR与CAN总线实战解析
汽车电子底层软件开发:AUTOSAR与CAN总线实战解析

1. 这门“汽车电子底层软件开发就业课”到底在教什么?——不是写个LED闪烁就能上岗的很多人看到“汽车电子底层软件开发就业课”这个标题,第一反应是:不就是嵌入式C语言单片机CAN通信?刷几道LeetCode、调通一个STM32 CAN收发例程&… · 2026/9/24 23:59:53

Vim基础操作全攻略:保存退出、模式切换与高频命令实战
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保… · 2026/9/24 23:59:53

Python+CNN车牌识别实战:从数据预处理到模型训练与部署
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据… · 2026/9/24 23:59:53

AI元人文:从工具使用到思维重构的深度探索
AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决… · 2026/9/24 23:59:53

《AI Agent 场景应用 - MobileOpenClaw》第5-9节:会话上下文细化处理实战指南
《AI Agent 场景应用 - MobileOpenClaw》第5-9节:会话上下文细化处理实战指南

文档教程后端 【免费下载链接】CodeGuide :books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助,请给予支持(关注、… · 2026/9/24 23:59:47

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码