文末赠书

Hello, Cangjie

2024 年华为 HDC 大会上官宣仓颉编程语言,开启开发者预览。小异闻讯按捺不住激动的心情,第一时间就关注官方公众号,并申请体验资格。

经过两天的漫长等待后,终于通过审核,拿到了仓颉编译工具。现在小异就给大家来开箱体验。

开发环境:Debian GNU/Linux 11 (bullseye)

编译工具:cjc(Cangjie Compiler: 0.51.4)

“Hello, World”程序是入门新编程语言的标配,顺应传统,我们以“Hello, Cangjie”作为开始。创建新文件hello.cj,并输入以下代码:

1241f137c4b672f0fa9dd875feb71a3a.png

保存并编译,编译后执行程序:

c769154b5484ceaeb3df10f2772be256.png

初始体验还是非常容易上手的,现在我们对代码进行解读:

· main 是程序执行的入口,这与 C/C++/Go 语言很相似。在编译并执行程序之后,系统自动从 main 开始执行花括号中的代码。

· "Hello, Cangjie" 是一个字符串类型的字面量,由一对半角的双引号括起来得到。

· println 是一个函数,它将字符串"Hello, Cangjie"输出到终端并且自动换行。仓颉定义了许多实现特定功能的函数。

· 以“//”开头的内容表示注释,它是对代码的说明和对程序的解释,不参与程序编译。用“/*…*/”则可以实现多行注释。

良好的代码风格可以提高程序可读性,而且便于维护程序。初学者可以先从遵守以下简单的编程规范开始,在持续的学习过程中逐渐掌握更多规范:

· 在左花括号之后换行。

· 换行之后输入代码。花括号中的所有代码作为一个整体,要有一个级别的缩进。一个级别的缩进一般是 4 个空格,对于 UI 等多层嵌套使用较多的情况,可统一使用 2 个空格。

· 右花括号独占一行。

直观体验了仓颉编程之后,我们再来体会这门语言的独特魅力。

仓颉语言拥有这些特性

仓颉编程语言的定位,是面向全场景应用开发的现代编程语言,力图在开发体验、语言特性、程序性能之间取得最佳平衡。仓颉非常适合用来实现业务逻辑,在鸿蒙的体系内获得最大效用。

仓颉是一门多范式编程语言,支持函数式、命令式和面向对象等多种范式,包括值类型、类和接口、泛型、代数数据类型、模式匹配,以及高阶函数等特性。

作为一门现代编程语言,仓颉有四大特性非常值得开发者关注。

原生智能化

仓颉编程语言内嵌了 AgentDSL 的编程框架,实现了自然语言与编程语言有机融合。多 Agent 协同,简化符号表达,模式可以自由组合,支持各类智能应用开发。

a1d32f5ad71af9b30cd809d2dfbec55d.png

从以上代码段可以看到,在仓颉语言中,Agent 的声明和使用语法与仓颉本身的语法一致,既能享受仓颉的静态检查能力,又没有学习成本,将高效编程、安全可靠发挥到极致。

高性能

仓颉编程语言采用全并发 GC,应用线程运行更加流畅,响应速度更快。轻量化线程设计进一步提升了并发性能,降低了开发成本。

0cf7c0446c6591ad0430bcd0ec50ddfd.png

在仓颉中创建和执行线程非常简洁,上述代码使用关键字 spawn 创建了一个线程,并且传递了一个无形参的 lambda 表达式,该 lambda 表达式即为在新线程中执行的代码。

强安全

仓颉编程语言将安全理念融入语言设计,帮助开发者专注于业务逻辑,减少安全漏洞的产生,实现“编码即安全”的愿景。

跨语言调用

仓颉编程语言支持和 C、ArkTS/JS、Python 等编程语言的互操作,并采用便捷的声明式编程范式,可以实现对其他语言库的高效复用和生态兼容。

6d7d5c8805dc5dbdd15329515b2e4e71.png

上述代码即实现了在仓颉语言中调用 C 语言库中的 rand 和 printf 函数。首先用 foreign 修饰函数声明,代表该函数为外部函数;然后用 unsafe 块包裹 C 语言函数,unsafe 可以修饰一个代码块,也可以修饰一个函数。

要想系统化学习仓颉语言,小异介绍一本书给大家,学完就可以快速上手干活。

一本书快速上手仓颉

天下武功,唯快不破!

《仓颉编程快速上手》这本书就能帮助开发者迅速抓住仓颉语言的核心要素,开发出实用性的程序。

1ba70163cb5ac066d5d3ac549cfaa311.png

点击下方即可购书 ,限时特惠5折

本书以 15 章的篇幅涵盖了从起步到基础语法知识、面向对象编程、高阶知识等内容。在讲解技术点时结合实例加以说明,清晰易理解。

基础语法知识

这部分从“你好,仓颉!”最简程序开始,解释程序的基本结构与编程规范,然后介绍了变量的声明与使用。对于数据操作,则介绍了存储数值的数据类型,以及存储字符的数据类型。

对于流程控制语句,介绍了条件测试、单分支的 if 表达式、双分支的 if表达式和嵌套的 if 表达式,以及do-while 表达式、while 表达式、for-in 表达式和循环表达式的嵌套。

接着介绍了函数的定义和调用,然后介绍了函数的重载,最后介绍了变量的作用域。

9cc837655d5d6c3fbefc156d12838023.png

面向对象编程

重点介绍了类的定义和对象的创建,然后详细介绍了面向对象编程的三大特征——封装、继承和多态,最后介绍了抽象类和接口的用法。本部分通过一个小型的课务管理项目对上述概念进行了深入阐释。

39b27b58add65c8aafcc77026b58e736.png

对于 struct,介绍了 struct 类型的定义和 struct 实例的创建,然后介绍了 struct 类型和 class 类型的区别。

高阶知识

首先介绍了函数的一些高级特性,包括函数作为“一等公民”的用法、lambda 表达式的定义和使用、嵌套函数和闭包的用法、如何进行函数重载决议、操作符重载函数的定义和使用、mut 函数在 struct 和 interface 中的用法等。

接着介绍了仓颉的 4 种基础 Collection 类型——Array、ArrayList、HashSet 和 HashMap,其主要用法包括实例的创建和元素的增删改查等操作。

还介绍了泛型类型及其泛型约束、包管理、直接扩展和接口扩展、生成随机数据、通用的数学操作、格式化输出和字符串操作。

a4b8d2d6f368771a8796a781463aa612.png

本书主要特点如下:

· 内容全面,涵盖了仓颉语言的核心语法特性。

· 注重实战,以应用为导向,理论联系实际,解决具体问题。

· 示例丰富,书中针对各个知识点都给出了实践代码案例。

· 配套资源齐全,提供全书源代码、引导教学视频等,提高学习效率。

本书的作者团队实力强大,依托丰富的教学经验与深厚的技术功底写成此书,技术小白也可以轻松入门仓颉编程。

9bafcce963ae083146179d9e595d9ddd.jpeg

刘玥

九丘教育 CEO,曾在高校任教十余年,具有丰富的课堂教学经验,尤其擅长讲授程序设计、算法类课程。

89d157768645fe563f17a3fbf9132040.jpeg

张荣超

九丘教育教学总监、华为开发者专家(HDE)、华为首届 HarmonyOS 开发者创新大赛最佳导师、OpenHarmony 项目群技术指导委员会(TSC)委员。

学会《仓颉编程快速上手》,抢跑下一代编程语言吧!

福利时刻:先到先得

本次将送出 5本 作为粉丝福利 ,社区积分直接兑换!
兑换地址:http://spring4all.com/fuli-huodong
社区福利每周1-2次,快来一起来参与社区内容的建设,一起学习一起成长吧!
点击阅读原文,查看更多社区福利!
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐