本期评测名单如下
坚果 、cszzlsw、HXM1539、陈殷海、范嘉琦
请以上几位大佬联系工作人员(微信:elecfans123)领取书籍进行评测,如在5个工作日内未联系,视为放弃本次试用评测资格!
Hello, Cangjie
2024 年华为 HDC 大会上官宣仓颉编程语言,开启开发者预览。小异闻讯按捺不住激动的心情,第一时间就关注官方公众号,并申请体验资格。
经过两天的漫长等待后,终于通过审核,拿到了仓颉编译工具。现在小异就给大家来开箱体验。
开发环境:Debian GNU/Linux 11 (bullseye)
编译工具:cjc(Cangjie Compiler: 0.51.4)
“Hello, World”程序是入门新编程语言的标配,顺应传统,我们以“Hello, Cangjie”作为开始。创建新文件hello.cj,并输入以下代码:
保存并编译,编译后执行程序:
初始体验还是非常容易上手的,现在我们对代码进行解读:
- main 是程序执行的入口,这与 C/C++/Go 语言很相似。在编译并执行程序之后,系统自动从 main 开始执行花括号中的代码。
- "Hello, Cangjie" 是一个字符串类型的字面量,由一对半角的双引号括起来得到。
- println 是一个函数,它将字符串"Hello, Cangjie"输出到终端并且自动换行。仓颉定义了许多实现特定功能的函数。
- 以“//”开头的内容表示注释,它是对代码的说明和对程序的解释,不参与程序编译。用“/ … /”则可以实现多行注释。
良好的代码风格可以提高程序可读性,而且便于维护程序。初学者可以先从遵守以下简单的编程规范开始,在持续的学习过程中逐渐掌握更多规范:
- 在左花括号之后换行。
- 换行之后输入代码。花括号中的所有代码作为一个整体,要有一个级别的缩进。一个级别的缩进一般是 4 个空格,对于 UI 等多层嵌套使用较多的情况,可统一使用 2 个空格。
- 右花括号独占一行。
直观体验了仓颉编程之后,我们再来体会这门语言的独特魅力。
仓颉语言拥有这些特性
仓颉编程语言的定位,是面向全场景应用开发的现代编程语言,力图在开发体验、语言特性、程序性能之间取得最佳平衡。仓颉非常适合用来实现业务逻辑,在鸿蒙的体系内获得最大效用。
仓颉是一门多范式编程语言,支持函数式、命令式和面向对象等多种范式,包括值类型、类和接口、泛型、代数数据类型、模式匹配,以及高阶函数等特性。
作为一门现代编程语言,仓颉有四大特性非常值得开发者关注。
原生智能化
仓颉编程语言内嵌了 AgentDSL 的编程框架,实现了自然语言与编程语言有机融合。多 Agent 协同,简化符号表达,模式可以自由组合,支持各类智能应用开发。
从以上代码段可以看到,在仓颉语言中,Agent 的声明和使用语法与仓颉本身的语法一致,既能享受仓颉的静态检查能力,又没有学习成本,将高效编程、安全可靠发挥到极致。
高性能
仓颉编程语言采用全并发 GC,应用线程运行更加流畅,响应速度更快。轻量化线程设计进一步提升了并发性能,降低了开发成本。
在仓颉中创建和执行线程非常简洁,上述代码使用关键字 spawn 创建了一个线程,并且传递了一个无形参的 lambda 表达式,该 lambda 表达式即为在新线程中执行的代码。
强安全
仓颉编程语言将安全理念融入语言设计,帮助开发者专注于业务逻辑,减少安全漏洞的产生,实现“编码即安全”的愿景。
跨语言调用
仓颉编程语言支持和 C、ArkTS/JS、Python 等编程语言的互操作,并采用便捷的声明式编程范式,可以实现对其他语言库的高效复用和生态兼容。
上述代码即实现了在仓颉语言中调用 C 语言库中的 rand 和 printf 函数。首先用 foreign 修饰函数声明,代表该函数为外部函数;然后用 unsafe 块包裹 C 语言函数,unsafe 可以修饰一个代码块,也可以修饰一个函数。
要想系统化学习仓颉语言,小异介绍一本书给大家,学完就可以快速上手干活。
一本书快速上手仓颉
天下武功,唯快不破!
《仓颉编程快速上手》 这本书就能帮助开发者迅速抓住仓颉语言的核心要素,开发出实用性的程序。
本书以 15 章的篇幅涵盖了从起步到基础语法知识、面向对象编程、高阶知识等内容。在讲解技术点时结合实例加以说明,清晰易理解。
基础语法知识
这部分从“你好,仓颉!”最简程序开始,解释程序的基本结构与编程规范,然后介绍了变量的声明与使用。对于数据操作,则介绍了存储数值的数据类型,以及存储字符的数据类型。
对于流程控制语句,介绍了条件测试、单分支的 if 表达式、双分支的 if表达式和嵌套的 if 表达式,以及do-while 表达式、while 表达式、for-in 表达式和循环表达式的嵌套。
接着介绍了函数的定义和调用,然后介绍了函数的重载,最后介绍了变量的作用域。
面向对象编程
重点介绍了类的定义和对象的创建,然后详细介绍了面向对象编程的三大特征——封装、继承和多态,最后介绍了抽象类和接口的用法。本部分通过一个小型的课务管理项目对上述概念进行了深入阐释。
对于 struct,介绍了 struct 类型的定义和 struct 实例的创建,然后介绍了 struct 类型和 class 类型的区别。
高阶知识
首先介绍了函数的一些高级特性,包括函数作为“一等公民”的用法、lambda 表达式的定义和使用、嵌套函数和闭包的用法、如何进行函数重载决议、操作符重载函数的定义和使用、mut 函数在 struct 和 interface 中的用法等。
接着介绍了仓颉的 4 种基础 Collection 类型——Array、ArrayList、HashSet 和 HashMap,其主要用法包括实例的创建和元素的增删改查等操作。
还介绍了泛型类型及其泛型约束、包管理、直接扩展和接口扩展、生成随机数据、通用的数学操作、格式化输出和字符串操作。
申请时间
2024年7月24日——2024年8月24日
活动参与方式
1、在本帖下方留言回帖说说你想要这本书的理由15字以上。
2、我们将从本帖留言中挑选5位幸运者赠送此书籍,共赠送5本。
3、请在收到书籍后2个星期内提交不少于2篇试读报告要求300字以上图文并茂。
4、试读报告发表在电子发烧友论坛>>社区活动专版标题名称必须包含 【「仓颉编程快速上手」阅读体验】+自拟标题
注意事项
1、活动期间如有作弊、灌水等违反电子发烧友论坛规则的行为一经发现将立即取消获奖资格
2、活动结束后获奖名单将在论坛公示请活动参与者尽量完善个人信息如管理员无法联系到选中的评测者则视为自动放弃。
3、申请人收货后14天内未完成书评无权将书籍出售或转赠给他人。如无法在收货后14天内提交书评请将书籍退回电子发烧友论坛运费自理。
4、如有问题请咨询工作人员(微信:elecfans123)。