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

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

上节课我们成功安装了仓颉工具链,今天让我们一起编写并运行第一个仓颉程序。相信很多同学都还记得学习第一门编程语言时写的"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的区别
相关推荐
左手厨刀右手茼蒿1 天前
Flutter 三方库 all_lint_rules_community 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、严谨、基于全量社区 Lint 规则的工业级静态代码质量与安全审计引擎
flutter·harmonyos·鸿蒙·openharmony·all_lint_rules_community
雷帝木木1 天前
Flutter for OpenHarmony:Flutter 三方库 cbor 构建 IoT 设备的极致压缩防窃协议(基于标准二进制 JSON 表达格式)
网络·物联网·flutter·http·json·harmonyos·鸿蒙
王码码20351 天前
Flutter 三方库 servicestack 的鸿蒙化适配指南 - 实现企业级 Message-based 架构集成、支持强类型 JSON 序列化与跨端服务调用同步
flutter·harmonyos·鸿蒙·openharmony·message-based
里欧跑得慢1 天前
Flutter 三方库 jsonata_dart 的鸿蒙化适配指南 - 实现高性能的 JSON 数据查询与转换、支持 JSONata 表达式引擎与端侧复杂数据清洗
flutter·harmonyos·鸿蒙·openharmony·jsonata_dart
总有刁民想爱朕ha1 天前
haihong Os 鸿蒙开源版开发一个pc版软件应用(1)
华为·开源·harmonyos
路-buan1 天前
华为eNSP:三种配置防火墙的方式
华为
爱网络爱Linux1 天前
华为 HCIA-Datacom考试版本升级 V2.0!2026年7月起考新版
华为·hcie·hcip·h12-811·华为数通认证·hcia datacom·微信公众号:厦门微思网络
Swift社区1 天前
鸿蒙 App 的数据流设计
华为·harmonyos
国医中兴1 天前
Flutter 三方库 superclass 的鸿蒙化适配指南 - 支持原生高性能类构造、属性代理与深层元数据解析实战
flutter·harmonyos·鸿蒙·openharmony
Swift社区1 天前
Flutter 迁移鸿蒙 ArkUI 的真实成本
flutter·华为·harmonyos