开箱!开发者的第一个仓颉语言程序 | 文末赠书

文末赠书

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 可以修饰一个代码块,也可以修饰一个函数。要想系统化学习仓颉语言,小异介绍一本书给大家,学完就可以快速上手干活。

一本书快速上手仓颉

天下武功,唯快不破!《仓颉编程快速上手》这本书就能帮助开发者迅速抓住仓颉语言的核心要素,开发出实用性的程序。点击下方即可购书 ,限时特惠5折


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

基础语法知识

这部分从“你好,仓颉!”最简程序开始,解释程序的基本结构与编程规范,然后介绍了变量的声明与使用。对于数据操作,则介绍了存储数值的数据类型,以及存储字符的数据类型。对于流程控制语句,介绍了条件测试、单分支的 if 表达式、双分支的 if表达式和嵌套的 if 表达式,以及do-while 表达式、while 表达式、for-in 表达式和循环表达式的嵌套。接着介绍了函数的定义和调用,然后介绍了函数的重载,最后介绍了变量的作用域。

面向对象编程

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

高阶知识

首先介绍了函数的一些高级特性,包括函数作为“一等公民”的用法、lambda 表达式的定义和使用、嵌套函数和闭包的用法、如何进行函数重载决议、操作符重载函数的定义和使用、mut 函数在 struct 和 interface 中的用法等。接着介绍了仓颉的 4 种基础 Collection 类型——Array、ArrayList、HashSet 和 HashMap,其主要用法包括实例的创建和元素的增删改查等操作。还介绍了泛型类型及其泛型约束、包管理、直接扩展和接口扩展、生成随机数据、通用的数学操作、格式化输出和字符串操作。本书主要特点如下:

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

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

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

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

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

刘玥

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

张荣超

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

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



福利时刻:先到先得

本次将送出 5本 《仓颉编程快速上手作为粉丝福利 ,社区积分直接兑换兑换地址:http://spring4all.com/fuli-huodong社区福利每周1-2次,快来一起来参与社区内容的建设,一起学习一起成长吧!

相关推荐

  • Spring Boot实现分布式验证码登录方案
  • 单一作者论文,谷歌提出百万专家Mixture,超越密集前馈、稀疏MoE
  • 手把手 从 0 到 1 搞定官网开发
  • [开源]MIT开源协议的测试平台,专注于接口自动化测试的管理平台
  • 谈谈登录系统的演进、设计与实现
  • Spring Boot集成pf4j实现插件开发功能
  • 无人驾驶出租车爆火,武汉司机有些慌
  • 一个比requests还好用的Python高效爬虫库,效率提高一倍!
  • Modbus通信中到底用大端还是小端???
  • 29.8K Star谷歌都在用!!!超2万人关注的测试爬虫工具
  • 开源日报 | Vitest 2.0;谷歌专用API;通义千问“国服最强”;加州起草法案把开源管起来;汽车基础软件开源引热议
  • AI技术创新可以有多硬核?GOTC 2024论坛议程抢先看
  • Rust即将进入前十:中赢、大赢、还是特大赢?
  • 上交发布MG-LLaVA,基于多粒度指令调整,横扫视觉大模型榜单
  • 新国立祭出视频生成“无限宝石“:2300帧仅需5分钟,提速100倍
  • 中国AI论文数量全球第一!中科院拿下研究机构双第一,腾讯企业排第三
  • 阿尔特曼20年:从创业失败到权力中心
  • 最近很火的老照片动起来,都是怎么玩的?
  • 苹果Vision Pro和AI的重磅新大招,被提前扒出来了
  • 还在用Jenkins?快来试试这款简而轻的自动化部署工具吧!