【仓颉语言入门 · 第1课】Windows 环境搭建 + CIDE 第一个 Hello World(附 30 课学习路线)

大家好,从今天开始,我打算系统性地整理一套**仓颉编程语言(Cangjie)**的学习笔记,一边学一边记录,从零开始走到能独立做项目。整个系列会全程在一款轻量级的仓颉桌面 IDE —— CIDE 中完成,环境配置、写代码、编译运行、断点调试一条龙,尽量少折腾命令行,把精力放在语言本身。

本文是系列第 1 课:装好环境、认识工具链、创建并运行第一个仓颉程序,最后再玩一下断点调试。建议收藏专栏,按顺序跟练。


目录(系列导航)

整套路线共 7 个模块、30 课,按每周 2~3 课的节奏,大约 2~3 个月可以走完一遍:

模块课次内容
一、环境与入门01~05环境搭建与 Hello World、变量与基本类型、运算符与输入输出、分支、循环
二、常用类型与数据组织06~10字符串、数组与区间、ArrayList/HashMap/HashSet、可空类型、错误处理
三、函数与函数式11~14函数、Lambda 与高阶函数、闭包、迭代器与惰性序列
四、面向对象与类型系统15~20struct/class、构造与属性、接口、枚举与 match 模式匹配、泛型、扩展
五、工程化与标准库21~25cjpm 包管理与多文件、文件 IO、JSON 处理、网络编程、单元测试
六、并发编程26~28线程、Channel 通道与同步原语、并发实战
七、项目实战29~30命令行小工具、GeoJSON 数据处理实战
  1. 环境搭建与第一个仓颉程序(本文)
  2. 变量与常量:let / var 与基本数据类型
  3. 运算符与标准输入输出
  4. 分支结构:if 与 when 表达式
  5. 循环结构:while / for / Range
  6. 字符串详解与字符串插值
  7. 数组 Array 与区间 Range
  8. 集合框架:ArrayList、HashMap、HashSet
  9. 可空类型 ? 与 Option
  10. 错误处理:异常机制与 Result
  11. 函数定义、参数与返回值
  12. Lambda 表达式与高阶函数
  13. 闭包、作用域与函数类型
  14. 迭代器 Iterator 与 Sequence
  15. 结构体 struct 与类 class
  16. 构造函数、属性与方法
  17. 接口 interface 与实现
  18. 枚举 enum、代数数据类型与 match 模式匹配
  19. 泛型编程
  20. 扩展、类型别名与可见性控制
  21. cjpm 包管理与多文件项目组织
  22. 文件与目录 IO
  23. JSON 处理(结合 stdx 扩展库)
  24. 网络编程入门
  25. 单元测试
  26. 并发基础:线程的创建与等待
  27. Channel 通道与同步原语
  28. 并发实战:多线程任务处理
  29. 实战一:带文件持久化的命令行小工具
  30. 实战二:GeoJSON 数据处理程序

一、仓颉语言是什么?

仓颉是华为推出的全场景编程语言,语法现代、类型系统完善,同时支持函数式、面向对象、命令式等多种编程范式,原生内置协程/线程并发能力,编译器为 cjc,包管理工具为 cjpm。

学习一门新语言的第一步永远不是背语法,而是:把环境跑通,看到第一行输出。 这就是我们今天的目标。


二、环境准备

我们需要两样东西:

  1. 仓颉 SDK(Cangjie SDK):编译器 cjc、包管理器 cjpm、格式化工具 cjfmt 等都在里面;
  2. CIDE:一款面向仓颉语言的轻量级桌面 IDE(社区版),内置仓颉项目创建、代码编辑、运行与基于 lldb 的可视化调试。

2.1 安装仓颉 SDK(Windows)

  1. 打开仓颉编程语言官网 cangjie-lang.cn,进入下载页,下载 Windows x86_64 版本的 SDK 压缩包(需要先注册账号并同意许可协议)。

  2. 将压缩包解压到一个没有中文和空格的目录,例如:

    D:\dev\cangjie
    
  3. SDK 根目录下提供了环境配置脚本。在 PowerShell 中执行:

    # 进入 SDK 目录后执行(文件名以实际版本为准)
    .\envsetup.ps1
    

    它会帮你设置好 CJ_HOME / CANGJIE_HOME 等环境变量并把工具链加入 PATH。

  4. 重新打开一个 PowerShell 窗口,验证安装:

    cjc -v
    cjpm -v
    

    能打印出版本号,就说明工具链安装成功。

💡 Linux / macOS 的同学下载对应平台的安装包,执行根目录下的 envsetup.sh 即可,后续在 CIDE 里的操作完全一样。

📸 配图建议:PowerShell 中 cjc -v、cjpm -v 输出版本号的截图。

2.2 下载并安装 CIDE

CIDE 是一款免费的开源软件,安装包发布在 GitCode 仓库的发行版页面:

  • 🔗 下载地址:https://gitcode.com/wp_upala/cide
  • 进入页面后打开 发行版(Releases),下载 Windows 安装包,文件名形如 CIDE-<版本>-x64-Setup.exe(Beta 渠道为 CIDE-Beta-<版本>-x64-Setup.exe)。

下载后双击安装包按提示安装即可,开始菜单里会出现 CIDE Beta,启动即可。

⚠️ CIDE 是个人维护的社区版,未做代码签名。安装时若 Windows 弹出「未知发布者」或「Windows 已保护你的电脑」提示,点击「更多信息 → 仍要运行」即可,属正常现象。

CIDE 启动时会自动扫描常见安装目录下的仓颉 SDK,一般无需在软件里手动配置。如果后面新建项目时 SDK 版本能自动显示,说明一切就绪。


三、创建第一个仓颉项目

3.1 新建项目

在 CIDE 中通过菜单 File → New Project(或快捷键 Ctrl + N)打开新建项目对话框,按下面填写:

字段填什么说明
Project NamehelloCangjie项目名,建议用英文
Location例如 E:\code项目存放的父目录,软件会在其下再建一层项目文件夹
SDK Version下拉选择已安装的版本自动扫描到的仓颉 SDK
Output Typeexecutable可执行程序;另外两个是静态库、动态库,后面课程再讲
stdx Path留空即可使用标准扩展库时才需要,第 23 课会用到

点击 Create,项目创建完成后会自动在 CIDE 中打开。

📸 配图建议:新建项目对话框填写完成的截图。

3.2 项目结构长什么样

在左侧 Project 面板可以看到典型的 cjpm 项目结构:

helloCangjie/
├── src/
│   └── main.cj        # 源码文件,仓颉源码以 .cj 为后缀
├── cjpm.toml          # 项目配置清单(类似其他语言的 package.json)
└── target/            # 编译产物输出目录(编译后自动生成)

cjpm.toml 是项目的"身份证",里面关键字段如下:

[package]
  cjc-version = "1.1.3"     # 编译此项目使用的编译器版本
  name = "helloCangjie"     # 包名
  version = "1.0.0"         # 项目版本
  output-type = "executable"  # 输出类型:可执行程序

[dependencies]              # 第三方依赖声明,后面课程会用到

3.3 认识 Hello World 代码

打开 src/main.cj,你会看到类似下面的代码(不同 SDK 版本生成的文案可能略有差异,不影响运行):

package helloCangjie

main(): Int64 {
    println("Hello, helloCangjie!");
    return 0;
}

逐行解读:

  • package helloCangjie:声明当前文件属于 helloCangjie 包。仓颉是按包组织代码的,每个可编译项目都要有包声明;
  • main(): Int64 { ... }:程序入口函数。一个可执行程序从 main 函数开始执行;: Int64 表示它返回一个 64 位整数作为进程退出码;
  • println(...):标准库函数,把内容输出到控制台并自动换行;
  • return 0:返回退出码 0,表示程序正常结束;
  • 行尾的 ; 分号在仓颉中通常可以省略,软件自动生成的模板保留了它,两种写法都合法。

四、运行第一个程序

先按 Ctrl + S 保存文件,然后任选一种方式运行:

  • 菜单 Run → Run
  • 快捷键 Ctrl + R

CIDE 底部会弹出工具窗口,注意两个面板的分工:

  • Build:显示编译过程,底层实际执行的是 cjpm run(先编译、后运行);
  • Result:显示程序自己的输出。

如果一切正常,你会在 Result 面板看到:

Hello, helloCangjie!

📸 配图建议:Build 面板编译成功 + Result 面板输出 Hello 的截图。

恭喜,你的第一个仓颉程序跑起来了!🎉


五、动手改一改

光跑模板不算会,我们把它改成一个"欢迎小程序"。把 main.cj 的内容替换为:

package helloCangjie

main(): Int64 {
    println("==============================")
    println("    欢迎来到仓颉编程语言的世界!")
    println("    我的第一个仓颉程序运行成功")
    println("==============================")
    return 0
}

保存后再次 Ctrl + R,观察输出:

==============================
    欢迎来到仓颉编程语言的世界!
    我的第一个仓颉程序运行成功
==============================

两个小实验,建议亲手试一下:

  1. 把其中一行 println 改成 print,观察输出还换不换行;
  2. 故意删掉一个双引号,再运行,观察 Build 面板里的编译错误提示长什么样——以后看报错是日常操作,不用怕。

写乱了也没关系,按 Ctrl + Alt + L 可以一键格式化代码(底层调用 cjfmt)。


六、调试初体验(先混个脸熟)

CIDE 内置了基于 lldb 的可视化调试器,今天只需要认识三个动作,变量观察等第 2 课学完变量再正式练。

  1. 打断点:在代码行号左侧的沟槽(gutter)里点一下,出现红点即断点,例如点在第一行 println 上;
  2. 开始调试:菜单 Run → Debug(快捷键 Shift + F9)。程序会先带调试信息编译(-g),然后在断点处暂停,当前行会高亮;
  3. 单步与继续:
    • F8:单步跳过(执行当前一行,不进入函数内部);
    • F9:继续运行到下一个断点;
    • 调试工具窗口里可以看到调用栈等信息。

再按 F8 几下,可以看到高亮行一行行往下走,Result 面板逐行打印——这就是"程序是一条一条语句执行的"最直观的演示。调试结束记得点停止按钮结束调试会话。

📸 配图建议:断点红点 + 调试暂停时行高亮 + 底部调试面板的截图。


七、常见问题 FAQ

Q1:新建项目时 SDK Version 下拉是空的?
说明 CIDE 没有扫描到仓颉 SDK。先确认在新开的 PowerShell 里 cjc -v 能输出版本号(envsetup.ps1 执行后要重开终端),然后重启 CIDE 再试。

Q2:编译报 cjc-version 版本不匹配?
打开 cjpm.toml,把 cjc-version 改成你实际安装的 SDK 版本号(cjc -v 可查)即可。

Q3:输出中文乱码?
CIDE 运行仓颉程序时已自动按 UTF-8 处理,正常不会乱码;如果你自己在外部终端运行,Windows 下可先执行 chcp 65001 切到 UTF-8 代码页。

Q4:改了代码,运行结果却没变?
运行前先 Ctrl + S 保存,编译器编译的是磁盘上的文件。

Q5:第一次编译时杀毒软件拦截?
首次编译会生成可执行文件并做链接处理,个别杀软会短暂扫描锁定,选择信任即可,稍等重试就能通过。

Q6:println 和 print 的区别?
println 输出后自动换行,print 不换行,除此之外完全一样。


八、课后练习

  1. 新建一个名为 myFirstApp 的项目,输出三行你自己的自我介绍;
  2. 只用 print(不许用 println),让输出最终也能正确换行(提示:想想换行符);
  3. 在程序中故意制造两个编译错误(如漏掉引号、漏掉右花括号),观察并尝试读懂 Build 面板的报错信息。

下节预告

第 2 课我们正式进入语法:变量与常量 —— let、var 和仓颉的基本数据类型,学会在程序里存数据、用数据,并配合 CIDE 的调试器实时观察变量值。我们下节课见!


系列说明:本系列基于 Windows 平台 + CIDE + 仓颉 SDK 编写,所有代码均在 CIDE 中实际编译运行通过。如遇 SDK 版本差异导致的细节出入,以你本地版本为准,欢迎评论区交流。


📥 工具下载

本系列全程使用的仓颉 IDE —— CIDE(免费开源、社区版):

Logo

一站式 AI 云服务平台

更多推荐