欢迎来到仓颉编程语言的第一个实战课程。
上节课我们成功安装了仓颉工具链,今天让我们一起编写并运行第一个仓颉程序。相信很多同学都还记得学习第一门编程语言时写的"Hello World"程序,那种看到程序成功运行的激动心情。今天,我们就要在仓颉语言中重现这个经典时刻!
一、第一个程序的完整流程
让我们先看看编写和运行仓颉程序的完整流程:
开始 创建源文件 编写代码 保存文件 编译程序 运行程序 查看输出 hello.cj main函数 cjc编译器 可执行文件 你好,仓颉
看起来步骤不少,但实际操作起来非常简单。让我来一步步带大家完成。
二、创建第一个仓颉源文件
首先,我们需要创建一个仓颉源文件。仓颉源文件的扩展名是.cj
,这就像Java用.java
,Python用.py
一样。
文件命名规则 扩展名 文件名 编码格式 .cj
仓颉源文件 hello
简洁明了 UTF-8
支持中文 hello.cj 完整文件名
创建一个名为hello.cj
的文件。注意:
- 文件名可以自定义,但建议使用有意义的名称
- 扩展名必须是
.cj
- 建议使用UTF-8编码,这样可以在代码中使用中文
三、编写Hello World程序
现在让我们来编写代码。打开hello.cj
文件,输入以下内容:
swift
// hello.cj
main() {
println("你好,仓颉")
}
让我详细解释一下这段代码的每个部分:
代码结构 注释 main函数 函数体 // hello.cj
单行注释 main()
程序入口 {...}
代码块 println函数 打印功能 自动换行 你好,仓颉 字符串参数
代码解析
-
注释部分 :
// hello.cj
- 这是单行注释,用于说明文件名
- 仓颉支持两种注释方式
-
main函数 :
main() { ... }
- 这是程序的入口点
- 注意:仓颉的main函数不需要
func
关键字 - 每个可执行程序都必须有main函数
-
println函数 :
println("你好,仓颉")
- 用于打印输出
- 自动在末尾添加换行符
- 可以打印中文字符串
四、仓颉的注释系统
让我们深入了解一下仓颉的注释语法:
注释类型 单行注释 多行注释 // 开头 到行尾结束 用于简短说明 /* 开始 */ 结束 可跨越多行 使用场景 文件说明 函数说明 代码解释 临时屏蔽
示例:
swift
// 这是单行注释,解释下面的代码
/* 这是多行注释
可以写很多行
用于详细说明 */
main() {
// 打印欢迎信息
println("你好,仓颉") // 行尾注释
/* 暂时屏蔽这段代码
println("这行不会执行")
*/
}
五、编译仓颉程序
代码写好了,接下来要编译它。仓颉使用cjc
编译器:
用户 终端 cjc编译器 文件系统 输入编译命令 cjc hello.cj -o hello 调用编译器 读取hello.cj 词法分析 语法分析 语义分析 代码生成 生成可执行文件 hello (Linux/macOS) hello.exe (Windows) 编译完成 用户 终端 cjc编译器 文件系统
编译命令详解
编译命令 cjc hello.cj -o hello 编译器名称 源文件 输出选项 输出文件名 平台差异 Linux/macOS Windows cjc hello.cj -o hello cjc hello.cj -o hello.exe
命令解释:
cjc
:仓颉编译器的命令hello.cj
:要编译的源文件-o
:指定输出文件名的选项hello
:生成的可执行文件名
六、运行程序
编译成功后,让我们运行程序:
运行方式 Linux/macOS Windows ./hello 输出结果 hello.exe .\hello.exe 你好,仓颉
不同平台的运行命令:
- Linux/macOS :
./hello
- Windows :
hello.exe
或.\hello.exe
七、完整的开发流程演示
让我们把整个过程串起来看:
运行阶段 编译阶段 编写阶段 执行程序 查看输出 执行cjc命令 生成可执行文件 创建hello.cj 编写main函数 添加println
八、常见问题与解决方案
常见问题 编译错误 运行错误 输出问题 文件名错误 语法错误 路径问题 权限不足 找不到文件 乱码问题 没有输出 检查扩展名.cj 检查括号匹配 chmod +x 使用UTF-8
问题解决指南
-
找不到cjc命令
- 检查是否正确安装仓颉工具链
- 确认环境变量配置正确
-
编译报错
- 检查文件扩展名是否为
.cj
- 确认代码语法正确,特别是括号匹配
- 检查文件扩展名是否为
-
运行时权限不足(Linux/macOS)
- 使用
chmod +x hello
添加执行权限
- 使用
-
中文乱码
- 确保源文件使用UTF-8编码
- 检查终端编码设置
九、扩展练习
现在你已经成功运行了第一个仓颉程序,让我们尝试一些变化:
swift
// 练习1:打印多行
main() {
println("你好,仓颉")
println("Hello, Cangjie")
println("欢迎来到仓颉的世界!")
}
// 练习2:使用print不换行
main() {
print("你好,")
print("仓颉")
println("!") // 最后换行
}
// 练习3:添加更多注释
/*
* 我的第一个仓颉程序
* 作者:你的名字
* 日期:今天的日期
*/
main() {
// 使用中文打印欢迎信息
println("你好,仓颉")
// 也可以用英文
println("Hello, Cangjie")
}
课程总结
今日要点 源文件 编译 运行 调试 .cj扩展名 UTF-8编码 cjc编译器 -o指定输出 ./执行 查看结果 理解错误 解决问题
恭喜你!今天我们成功完成了:
- 创建了第一个仓颉源文件 - hello.cj
- 编写了第一个仓颉程序 - 包含main函数和println
- 学会了编译命令 - cjc的基本使用
- 成功运行了程序 - 看到了"你好,仓颉"
这虽然是个简单的程序,但它标志着你正式踏入了仓颉编程的大门。从这个简单的开始,我们将逐步学习更多仓颉的特性和功能。
作业:
- 创建一个新的程序,打印你的名字和今天的日期
- 尝试使用多行注释记录你的学习心得
- 探索print和println的区别
