当前位置: 首页 > news >正文

第1篇:认识仓颉——搭建开发环境 仓颉原生中文编程

第1篇:认识仓颉——搭建开发环境

**作者:**中文编程倡导者—— 李金雨
联系方式:wbtm2718@qq.com
**目标读者:**编程入门(零基础)
核心理念:使用华为仓颉原生中文编程,体验真正的国产编程语言,母语编程阅读效率极高


写在最前面:关于编程语言设计的思考

在学习仓颉编程语言之前,我想先和大家讨论一个很重要的问题:什么样的编程语言最适合中国人学习?

定语前置 vs 定语后置

我们中国人日常说话的习惯是定语前置——先描述属性,再说主体:

  • 我们说的是"红色的苹果",而不是"苹果红色的"
  • 我们说的是"漂亮的花朵",而不是"花朵漂亮的"
  • 我们说的是"三年二班的学生",而不是"学生三年二班的"

但是在编程语言中,我们经常看到这样的写法(类似Rust的风格):

// Rust风格 - 定语后置(像古汉语)letname:String="张三";// 名字 字符串类型的letage:Int64=15;// 年龄 整数类型的

这种把类型放在变量名后面的写法,就像是古汉语的定语后置,非常不符合我们现代人的语言习惯!

更符合中国人习惯的设计

C#的设计就聪明多了,它虽然也是类型后置,但微软正在考虑引入更灵活的语法。而华为仓颉语言目前采用的是类似Rust的设计:

// 仓颉目前的设计 let 姓名: String = "张三" // 名字 字符串类型的 let 年龄: Int64 = 15 // 年龄 整数类型的

我希望华为能够考虑开发一个类似C#风格的编程语言版本,或者在未来版本中支持更灵活的语法,比如:

// 更符合中国人习惯的设想 String 姓名 = "张三" // 字符串类型的 名字 = "张三" Int64 年龄 = 15 // 整数类型的 年龄 = 15

这样读起来就像是"字符串类型的名字等于张三",完全符合我们中国人的语言习惯!

不过,尽管仓颉目前的语法设计有这个小遗憾,它仍然是真正的国产编程语言,支持全中文编程,非常值得我们学习和支持!


一、开篇引入

1.1 欢迎来到编程世界!

你好!很高兴你能打开这本教程。在接下来的学习中,你将学会如何用华为仓颉编程语言编写程序——用纯中文写代码!

想象一下这些场景:

  • 💻 你用中文写代码,就像写作文一样自然
  • 🎯 你制作一个小游戏,和朋友们一起玩
  • 📊 你写一个成绩统计程序,帮助老师算分数
  • 🎮 你开发一个文字冒险游戏,讲述自己的故事

这些,你都能通过仓颉实现!

1.2 什么是仓颉编程语言?

**仓颉(Cangjie)**是华为公司自主研发的新一代编程语言,名字来源于中国古代传说中创造文字的"仓颉"。

仓颉的特点:

  • 🇨🇳原生支持中文:类名、函数名、变量名都可以用中文
  • 🚀高性能:编译型语言,运行速度快
  • 🔒安全可靠:强大的类型系统,减少错误
  • 💪功能强大:支持面向对象、函数式编程等现代特性
  • 📱全场景支持:鸿蒙系统、服务器、嵌入式都能用

1.3 本课我们要做什么?

今天这节课,我们要完成三件大事:

  1. 了解什么是仓颉编程语言
  2. 安装开发工具(编译器、编辑器)
  3. 运行你的第一个程序:“你好,仓颉!”

1.4 预期成果

完成本课后,你的屏幕上会显示:

=== 程序开始 === 你好,仓颉! 我是华为仓颉编程语言! 我的名字是:张三 === 程序结束 ===

很期待吧?让我们开始吧!


二、概念讲解

2.1 什么是编程语言?

生活例子:和外国人交流

假设你想和一个美国朋友说话,但你们语言不通,怎么办?

  • 你可以学英语
  • 或者找一个翻译

编程语言就像是程序员和计算机之间的"翻译官"。

我们用编程语言写"指令",计算机就能按照我们的想法工作。

为什么要用中文编程?

传统编程(英文为主):

#include<stdio.h>intmain(){intage=15;printf("Age: %d\n",age);return0;}

仓颉中文编程:

main() { let 年龄 = 15 println("年龄:${年龄}") }

看到区别了吗?

  • 传统编程:要记很多英文单词
  • 仓颉编程:用中文,一看就懂!

2.2 仓颉语言的特点

特点1:真正的国产语言

仓颉是华为自主研发的,不像其他语言(Java、Python等)都是国外的。

学习仓颉,就是支持国产技术!

特点2:编译型语言

编译型就像是:

  • 你写好作文(源代码)
  • 老师帮你批改整理(编译)
  • 变成一本精美的书(可执行文件)
  • 大家可以直接看书(运行程序)

解释型(如Python)就像是:

  • 你念一句,翻译一句
  • 速度相对慢一些

仓颉是编译型,所以运行速度快

特点3:类型安全

仓颉要求你明确告诉它:“这个数据是什么类型的”。

就像整理房间:

  • 衣服放衣柜(字符串类型)
  • 书放书架(整数类型)
  • 玩具放玩具箱(小数类型)

这样就不会搞混,减少错误!

2.3 关于语法设计的讨论

前面我们提到,仓颉目前的语法是:

let 姓名: String = "张三"

这种类型后置的设计,虽然在国际上很流行(Rust、Swift、Kotlin都这样),但对中国人来说,读起来确实有点别扭。

我们习惯的阅读顺序是:

  1. 先知道"这是什么类型"
  2. 再看"叫什么名字"
  3. 最后看"值是什么"

C#的设计就很符合这个习惯:

string姓名="张三";// 字符串 名字 = "张三"int年龄=15;// 整数 年龄 = 15

希望华为在未来的仓颉版本中,能够考虑支持这种更符合中国人思维习惯的语法形式,或者至少提供可选的语法糖,让初学者更容易上手。

不过,目前的仓颉语法也是完全可以接受的,习惯了之后写起来也很流畅。而且仓颉最大的优点是原生支持中文标识符,这才是最重要的!


三、动手实践

3.1 安装开发工具

第一步:安装仓颉编译器
  1. 打开浏览器,访问华为开发者官网
  2. 找到仓颉编程语言的下载页面
  3. 下载适合你电脑系统的版本(Windows/Mac/Linux)
  4. 按照安装向导完成安装

验证安装:
打开命令行,输入:

cjc--version

如果显示版本号,说明安装成功!

第二步:安装VS Code编辑器
  1. 访问 https://code.visualstudio.com/
  2. 下载并安装VS Code
  3. 打开VS Code,安装仓颉语言插件

3.2 创建第一个项目

创建项目文件夹
  1. 在电脑上创建一个文件夹,命名为我的第一个仓颉程序
  2. 用VS Code打开这个文件夹
创建程序文件
  1. 在VS Code中,点击"新建文件"
  2. 命名为主程序.cj
  3. 输入以下代码:
// 我的第一个仓颉程序 // 作者:你的名字 main() { println("=== 程序开始 ===") println("你好,仓颉!") println("我是华为仓颉编程语言!") println("=== 程序结束 ===") }
运行程序
  1. 打开命令行(终端)
  2. 进入项目文件夹
  3. 输入编译命令:
    cjc 主程序.cj-o我的程序
  4. 运行程序:
    ./我的程序

看到输出结果了吗?恭喜你!🎉

3.3 修改你的程序

练习1:显示自己的名字

修改代码,让它显示你的名字:

main() { println("=== 程序开始 ===") let 姓名 = "张三" // 改成你的名字 let 年龄 = 15 // 改成你的年龄 println("你好,我是${姓名}!") println("我今年${年龄}岁。") println("我正在学习仓颉编程语言!") println("=== 程序结束 ===") }
练习2:打印字符画
main() { println(" /\\ /\\") println(" / \\ / \\") println(" / \\ / \\") println("/ V \\") println("\\ /") println(" \\ /") println(" \\_________/") println("") println(" 你好!") }
练习3:制作简单的自我介绍
main() { println("╔═══════════════════════╗") println("║ 个人简介 ║") println("╠═══════════════════════╣") println("║ 姓名:张三 ║") println("║ 年龄:15岁 ║") println("║ 爱好:编程、篮球 ║") println("║ 梦想:成为程序员 ║") println("╚═══════════════════════╝") }

四、知识总结

4.1 今天我们学了什么?

  1. 仓颉编程语言:华为自主研发的国产编程语言
  2. 开发工具:仓颉编译器(cjc)+ VS Code编辑器
  3. 基本程序结构
    main() { // 程序代码 }
  4. 输出信息println("内容")

4.2 关键代码速查表

功能代码
定义主程序main() { ... }
输出文字println("内容")
不换行输出print("内容")
插入变量"${变量名}"
注释// 注释内容

4.3 关于语法风格的思考

虽然仓颉目前的类型后置语法(let 姓名: String)和我们中国人的语言习惯(定语前置)略有不同,但:

  1. 优点:这是现代编程语言的趋势,Rust、Swift、Kotlin都采用这种设计
  2. 适应:习惯了之后,写起来也很流畅
  3. 核心优势:仓颉原生支持中文标识符,这才是最重要的特色

建议华为:在未来版本中考虑支持可选的类型前置语法,让初学者有更多选择,更符合中国人的思维习惯。

4.4 常见错误提醒

错误现象可能原因解决方法
找不到命令cjc编译器未安装或未配置环境变量重新安装或配置PATH
编译错误语法错误检查括号、引号是否配对
中文乱码文件编码问题保存文件时使用UTF-8编码
无法运行编译未成功先编译再运行

五、课后作业

5.1 巩固练习(必做)

练习1:制作个人名片

写一个程序,显示你的:

  • 姓名
  • 年龄
  • 学校
  • 爱好
  • 座右铭

练习2:打印图形

用println打印以下图形:

* *** ***** ******* *********

练习3:制作课程表

打印你今天的课程表。

5.2 创意编程(选做)

创意1:制作贺卡

做一个电子贺卡,可以送给朋友或家人。

创意2:ASCII艺术

搜索ASCII艺术,用仓颉程序打印出来。

创意3:简单计算器

显示一个计算器的界面(纯文字版)。

5.3 下篇预习

下一篇,我们将学习数据与类型,了解如何在程序中存储不同类型的信息。预习问题:

  1. 程序怎么记住你的名字?
  2. 程序怎么区分整数和小数?
  3. 程序怎么判断"是"或"否"?

思考题:你觉得编程语言的语法应该更符合自然语言习惯,还是更应该追求国际化标准?为什么?


附录:学习资源

官方资源

  • 华为开发者官网
  • 仓颉官方文档
  • 仓颉示例代码库

社区资源

  • 仓颉开发者论坛
  • 学习交流群

小贴士

  • 多练习,多写代码
  • 遇到问题先自己思考
  • 善用搜索引擎
  • 加入学习社区,互相帮助

恭喜你完成了第1篇的学习!🎉

你已经迈出了仓颉编程之旅的第一步。虽然仓颉的语法设计有一些可以改进的地方(比如类型后置的问题),但它仍然是真正的国产编程语言,值得我们学习和支持!

记住,编程就像学骑自行车,一开始可能会摔跤,但只要坚持练习,你一定能骑得又快又稳!

下节课见!

http://www.jsqmd.com/news/750098/

相关文章:

  • 3分钟极速上手:Thorium浏览器让老旧电脑也能流畅上网的秘诀
  • # 造过轮子的人学框架有多快——我自己写完IOC和AOP,Spring就是换个API
  • 迭代与递归
  • 3步解锁QQ音乐加密音频:macOS免费高效转换终极方案
  • HoYo-Glyphs终极指南:11款米哈游游戏字体从安装到创意应用完整教程
  • 具身智能体系统Dugong:从AI推理到实时空间界面的编译与渲染
  • 魔兽争霸3完全优化指南:WarcraftHelper 2025简易配置教程
  • 鸣潮工具箱WaveTools:3步轻松解锁120帧与智能抽卡分析
  • 国家安全部曝光AI“投毒”产业链:你平时用的AI,可能早就被人动了手脚
  • LinkSwift:八大网盘直链解析终极解决方案,彻底告别下载限速烦恼
  • 3个核心场景+5个实战技巧:XHS-Downloader如何帮你高效管理小红书内容资源
  • 2004年的Java项目翻出来了我哭了——一个老程序员的回忆杀
  • 别再傻傻分不清!手机卡顿、电脑慢?可能是你的EMMC、UFS、SSD没选对
  • 内容创作平台集成 Taotoken 实现多模型文本生成与优化
  • AT24C02页写翻车实录:我的参数为什么被覆盖了?详解EEPROM页边界与防覆盖技巧
  • 提升arm7开发效率:快马智能生成常用驱动与模块代码库
  • 5步解锁NVIDIA显卡隐藏性能的完整指南:NVIDIA Profile Inspector实战教程
  • 语音数据集选择与应用实践指南
  • Higgsfield:简化多节点大模型训练的分布式编排框架实战指南
  • 第2篇:数据与类型——仓颉的基础数据类型 仓颉原生中文编程
  • Mac终极音乐解密指南:3步解锁QQ音乐加密文件,实现跨平台自由播放
  • 低代码插件热重载失败?(从py_compile缓存污染到__pycache__权限锁死的完整排障链)
  • Xiaomusic插件架构源码级解析:动态加载与异步事件处理机制深度剖析
  • 别再只会用滤镜了!用Python+OpenCV手把手教你调出专业级照片锐化效果(USM/SM实战)
  • 立即解决!Windows任务栏透明美化神器TranslucentTB全攻略
  • 工业备料封神!郑州博尚木材切片机实测,精度拉满还省电,木材厂/加工厂必入 - 会飞的懒猪
  • 数据格式混乱、时间戳错位、主键冲突全解析,深度解读Python跨系统融合的7大隐形陷阱
  • WaveTools鸣潮工具箱:终极解决方案,3分钟告别游戏卡顿与抽卡烦恼
  • ESP32边缘语音识别控制机械爪:从TensorFlow Lite到舵机控制的完整实践
  • 京东二面:假如SQL中join了10张表,如何优化性能?