仓颉编程语言(Cangjie)是华为编译器与编程语言实验室仓颉语言团队推出的一款面向全场景应用开发的编程语言,基本上就是为了辅助HarmonyOS而出现的。
- 编程语言81
- 案例70
- 大数据55
- 中间件48
- 电子书42
- 数据库42
- Go30
- 开源27
- 人工智能25
- CI&CD24
- 软件工程23
- 设计模式23
- Python21
- 数据仓库21
- 任正非20
- Docker20
- 杂项20
- JMeter17
- 微服务15
- 移动端15
- HarmonyOS15
- MySQL15
- Flink14
- 节略章节合辑13
- 软件许可证13
- 原型解构13
- 数据库设计13
- 新零售13
- 分库分表13
- 应用12
- 社交平台12
- 关系推荐12
- 数据科学基础12
- 关于11
- 胡言乱语11
- Linux11
- Clickhouse11
- 集成10
- 原型工具10
- 开发过程10
- Java10
- Spark10
- RocketMQ10
- Axure9
- U-AIGC9
- UI原型9
- Scala8
- Groovy8
- 兼容GPL的许可证8
- 产品经理8
- 智能硬件8
- 大数据风控8
- 爬虫8
- MongoDB8
- Kotlin8
- LUA8
- 程序员的数学7
- 短视频7
- APP7
- Hive7
- 七大设计原则7
- ArkTS7
- GPT6
- API6
- Hadoop6
- HBase6
- 领域模型6
- Kafka6
- Spring Security6
- Java高并发6
- 关于我5
- 开源常识5
- 车联网5
- Redis5
- Aviator5
- Flume5
- Caffeine5
- Google Guava5
- 毛泽东选集4
- 工具4
- 特色农产品4
- 文档许可证4
- 自由文档许可证4
- 其他许可证4
- 可穿戴产品4
- 流水线4
- Elasticsearch4
- Neo4j4
- 技术论文3
- 我写的书3
- 跑腿闪送3
- 设计心理学3
- 分布式3
- Android3
- 不兼容GPL的许可证3
- 电商3
- PC端3
- Apache Commons3
- Drools2
- 非自由软件许可证2
- 用户研究2
- 个人爱好1
- 个人能力1
- 超级个体1
- 第一卷1
- AIGC1
- 视觉交互设计1
- 数学1
- 站点部署1
- 智能穿戴1
- Balsamiq Mockups1
- Apache1
- AB压测1
- 第二卷1
- 第三卷1
- 第四卷1
- captcha1
- FaceRecognition1
- 地图1
- OSS1
- 支付1
- PUSH1
- OAuth 2.01
- SMS1
- weather1
- 综合性交互设计1
- 复杂设计1
- 情感设计1
- 云原生1
- 全局唯一ID1
- 幂等性1
- 事务1
- 瀑布模型1
- Azkaban1
- Canal1
- FileBeat1
- Sqoop1
- Zepplin1
- Lua1
- 加密算法1
- SSL1
- TLS1
- CA证书1
- HTTPS1
- Spring AI1
- 用户体验五要素1
- UFD分析法1
- 产品类型1
- 盈利模式1
- 可行性判断1
- 定价策略1
- 黑盒测试1
- 灰度测试1
- AB测试1
- PEST1
- SWOT1
- MRD1
- PRD1
- KANO模型分析1
- 需求价值分析1
- 车机交互1
- 分布式事务1
- Matplotlib1
- Pandas1
- Numpy1
- Scipy1
- Impala1
- 合成复用原则1
- 迪米特法则1
- 依赖反转原则1
- 接口隔离原则1
- 里氏替换原则1
- 开闭原则1
- 单一职责原则1
- 敏捷过程1
- RUP1
- UML1
- ERD1
- ElasticSearch1
- Cangjie1
- Cache1
- EventBus1
- common-fileupload1
- commons-lang31
没有优劣,只有适合
-
Java:由于出道早、跨平台、纯面向对象、具有JVM、生态成熟等特性,已成为编程语言领域的标杆之一,主要用于
三高(高并发、高可用和高性能)
企业级应用的开发。 -
Python:由于简单、灵活,且第三方算法库众多,已成为网络爬虫、数据科学、人工智能领域的主要编程语言(没有
之一
)。 -
Go:天生就没有所谓
线程
,而只有协程
的概念,它主要用来解决网络服务和云计算环境下复杂的系统通讯问题,非常适合于开发云计算、区块链等应用中的原生网络组件。 -
Scala:运行于JVM之上,在大数据应用领域中处于顶流的Spark(全部源码)和Flink(部分源码)就是用它开发的,所以用它来进行大数据统计分析是再合适不过的。
-
ArkTS:它是HarmonyOS首推的应用开发语言,是Ark(华为方舟编译器)和TypeScript的结合体。
-
Drools、Groovy和Aviator:作为规则引擎,其量级从
重
到轻
。Drools是用Java开发出来的规则系统,而后两者则是基于JVM的脚本语言。
装饰器(Decorator)
其实是一种特殊的函数,这个函数仅在代码加载阶段执行一次,可以被应用于类、属性、方法和参数上,从而改变原有的功能。
TypeScript或ArkTS的装饰器
,其实就对应于Java中的注解(Annotation)
。
泛型类和接口
将类和接口定义为泛型,类的成员变量和方法可以适应不同的类型,接口也可以适用于不同类型。
// 声明泛型类
class CustomStack<T> {
value: T | undefined;
setValue(val: T): void {
this.value = val;
}
getValue(): T | undefined {
return this.value;
}
}
let s = new CustomStack<string>();
s.setValue("hello");
// 输出"hello"
console.log(s.getValue());
interface GenericInterface<T> {
doSomething(value: T): void;
}
// 使用时指定类型
class ImplementingClass implements GenericInterface<string> {
doSomething(value: string): void {
console.log(value);
}
}
let is = new ImplementingClass();
// 输出"lixingyun"
is.doSomething("lixingyun");
声明函数
函数(function)
(也称为方法
)在ArkTS也中是一等公民
。
函数
通过function
关键字引入,包含名称、参数列表、返回类型和函数体。
function add(x: string, y: string): string {
let z: string = `${x} - ${y}`;
return z;
}
// 输出"hello - lixingyun"
console.log(add("hello", "lixingyun"));
// 函数的参数和返回值可以是多选的
// 参数既可以是数字,又可以字符串,返回值也一样
function foo(x: number | string): string | number {
return "2";
}
console.log(foo("1"));
类
ArkTS继承自TypeScript,所以也有类
和接口
的概念。
类的声明
class Person {
// 成员变量在声明时,或者在构造函数中尽量显式初始化
name: string = "";
age: number = 1;
// 构造函数
constructor (x: string, y: number) {
this.name = x;
this.age = y;
}
// 成员方法
show(): string {
return this.name + " " + this.age;
}
}
// 通过new关键字创建类
let p = new Person("lixingyun", 21);
// 输出"lixingyun 21"
console.log(p.show());
// 通过字面量创建类
class Point {
x: number = 0;
y: number = 0;
}
let pt: Point = { x: 42, y: 42 };
// 输出{"x": 42, "y": 42}
console.log(pt);
条件分支
和大多数语言一样,ArkTS也有两种条件语句:if
和switch
。
// 当s1为非空字符串时为true,而空字符串则为false
let s1 = "";
// 对boolean以外的类型进行判断时,会进行隐式类型转换
// 输出2
if (s1) {
console.log(1);
} else if (true) {
console.log(2);
} else {
console.log(3);
}
// 输出2
switch ("c") {
case "a":
console.log(1);
// break可选
break;
case "b":
case "c":
console.log(2);
break;
// 默认语句,可省略
default:
console.log(3);
}
ArkTS是HarmonyOS首推的应用开发语言,是Ark(华为方舟编译器)和TypeScript的结合体。