外观
ArkTS基础
方舟开发框架(简称ArkTS)为HarmonyOS应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面开发。
ArkTS是编写鸿蒙应用的一门编程语言,它和TypeScript语法很相似,比如定义变量和常量用const和let,打印用console.log等等。这里不详细介绍ArkTS的各种类型,因为都很简单,并且在TypeScript笔记中都记录了下来。
数据类型
ArkTS有三种基础数据类型:string、number、boolean。
let num: number = 123;
console.log("数字", num);
let bool: boolean = true;
console.log("布尔值", bool);
let str: string = "这是一个字符串";
console.log("字符串", str);console.log()函数需要两个参数,第一个参数为信息,第二个参数为信息内容,这一点和JavaScript是不同的。
运行结果:
03-19 23:07:30.951 I A0c0d0/JSApp: app Log: 数字 123
03-19 23:07:30.951 I A0c0d0/JSApp: app Log: 布尔值 true
03-19 23:07:30.951 I A0c0d0/JSApp: app Log: 字符串 这是一个字符串运行结果可在预览窗口更新以后,点击下方状态栏的日志即可查看。
###变量和常量
和JavaScript相似,ArkTS也具有变量和常量之分。变量使用let定义,常量使用const定义。
let variable = "这是一个变量";
variable = "变量的值可改变";
const constant = "这是一个常量";
constant = "常量的值不可以改变"; // 错误,常量的值不可改变
变量的命名规则如下。
- 只能使用数字、字母、下划线、$,不能以数字开头;
- 不能使用关键字;
- 严格区分大小写。
基本和其他编程语言一致。
数组
数组可以一次性存储多个数据。声明数组的语法为let 变量名: 类型名[] = [数据1, 数据2, ...]
let arr: number[] = [1, 2, 3, 4]数组具有索引,从0开始,通过数组名[索引]的方式获取数组元素的值。
let arr = ["黑龙江", "辽宁", "江苏", "北京"];
console.log("第三个元素", arr[2]); // 第三个元素 江苏函数
函数是一段可以重复使用的代码块。我们之前使用的console.log就是系统封装的日志打印函数。
定义函数的语法为function 函数名(参数列表) {函数体},调用函数的语法为函数名(参数列表)。
function add(a, b) {
console.log("两个数相加的结果为", a + b);
}
add(1, 2); //两个数相加的结果为 3ArtTS支持定义箭头函数,定义箭头函数的语法是(参数列表) => {函数体}。
let add = (a: number, b: number): number => {
return a + b
}
console.log("两个数相加:",add(1, 2));接口
接口约定了一个对象必须要包含的属性。interface关键字用于定义接口,然后在接口里面声明属性和类型。
interface Person {
name: string, // 必须包含的属性
age: number,
gender?: string, // 可以包含的属性
sayHi: () => void // 必须包含的属性,此属性是一个成员方法
}这时接口指定的名称就是我们的自定义类型。我们可以将对象指定为此类型,对象就必须包含该类型的属性。
let person: Person = {
name: "张三",
age: 18,
sayHi: () => console.log("提示信息", `你好,我是张三`)
}
console.log("名字:", person.name)定义接口的方法时,也可以指定方法的参数和返回值。
interface Obj {
func: (a: number, b: string, c: boolean) => void
}联合类型
联合类型可以允许一个变量有多种不同类型,以应变不同的需求。ArkTs使用管道符“|”隔开不同的变量类型。
let number: number | null = null;
let str: string | null = null;此外,若想限制一个变量只能是一些值中的一种,可以将这些值当作类型使用,放在变量后面限制它们,并用管道符隔开。这一点和TypeScript中的字面值类型很像。
let gender: "男" | "女" | "保密" | null = null;枚举类型
枚举类型约定变量只能在一组数据范围内选择值。枚举类型使用enum关键字定义,然后在里面声明枚举常量。每个枚举常量的值从0开始,以此类推,也可以在枚举类型内用赋值的形式给声明每一个枚举常量。
enum Month {
January,
February,
March,
// ...
}
enum Gender {
male = "男性",
female = "女性"
}由于枚举内的内容为常量,即枚举常量,直接使用即可。
enum Month {
January,
February,
March,
// ...
}
enum Gender {
male = "男性",
female = "女性"
}
console.log("月份", Month.February)
console.log("性别", Gender.male)
function print(gender: Gender): void {
console.log("你选择的性别为", gender)
}
print(Gender.male)