【华为仓颉编程语言】运行第一个仓颉程序

欢迎来到仓颉编程语言的第一个实战课程。

上节课我们成功安装了仓颉工具链,今天让我们一起编写并运行第一个仓颉程序。相信很多同学都还记得学习第一门编程语言时写的"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函数 打印功能 自动换行 你好,仓颉 字符串参数

代码解析

  1. 注释部分// hello.cj

    • 这是单行注释,用于说明文件名
    • 仓颉支持两种注释方式
  2. main函数main() { ... }

    • 这是程序的入口点
    • 注意:仓颉的main函数不需要func关键字
    • 每个可执行程序都必须有main函数
  3. 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

问题解决指南

  1. 找不到cjc命令

    • 检查是否正确安装仓颉工具链
    • 确认环境变量配置正确
  2. 编译报错

    • 检查文件扩展名是否为.cj
    • 确认代码语法正确,特别是括号匹配
  3. 运行时权限不足(Linux/macOS)

    • 使用chmod +x hello添加执行权限
  4. 中文乱码

    • 确保源文件使用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指定输出 ./执行 查看结果 理解错误 解决问题

恭喜你!今天我们成功完成了:

  1. 创建了第一个仓颉源文件 - hello.cj
  2. 编写了第一个仓颉程序 - 包含main函数和println
  3. 学会了编译命令 - cjc的基本使用
  4. 成功运行了程序 - 看到了"你好,仓颉"

这虽然是个简单的程序,但它标志着你正式踏入了仓颉编程的大门。从这个简单的开始,我们将逐步学习更多仓颉的特性和功能。


作业

  1. 创建一个新的程序,打印你的名字和今天的日期
  2. 尝试使用多行注释记录你的学习心得
  3. 探索print和println的区别
相关推荐
IntMainJhy3 小时前
「Flutter三方库sqflite的鸿蒙化适配与实战指南:从入门到踩坑的本地数据库开发全记录」
数据库·flutter·华为·信息可视化·数据库开发·harmonyos
前端技术5 小时前
HarmonyOS开发:鸿蒙应用开发发展史
华为·harmonyos
忡黑梨5 小时前
eNSP_路由策略
运维·服务器·网络·华为·智能路由器·负载均衡
Hello__77776 小时前
开源鸿蒙 Flutter 实战|自定义头像组件全流程实现
flutter·华为·harmonyos
模拟IC攻城狮7 小时前
华为2026 年校园招聘——硬件技术工程师-电源方向-机试题(12套)(每套四十题)
嵌入式硬件·华为·硬件架构·芯片
花先锋队长7 小时前
从“耐刮”到“通透”:华为抗反光耐刮昆仑玻璃,如何重新定义屏幕体验?
华为
sdszoe49228 小时前
华为设备安全管理之路由器+ACL
网络·安全·华为·路由器+acl
IntMainJhy8 小时前
【flutter for open harmony】第三方库 Flutter分享卡片的鸿蒙化适配与实战指南
flutter·华为·harmonyos
Lanren的编程日记8 小时前
任务76:Flutter 鸿蒙应用音频录制功能实战:音频录制+录音管理+录音编辑,打造完整音频处理能力
flutter·华为·音视频·harmonyos
IntMainJhy8 小时前
【flutter for open harmony】第三方库 Flutter运动计时器的鸿蒙化适配与实战指南
flutter·华为·信息可视化·数据库开发·harmonyos