面向对象
class 声明
说明:声明一个仅包含字段的类结构,该结构不能够写入方法,方法仅能由对象定义。同时需要注意的是类结构仅能由对象进行调用。
class 类名 {
字段: 类型
}
示例(含输出):
class User {
name: string;
age: int;
}
print("class-declared");
crob 简单对象
说明:基于类实例化一个对象,便于后续字段/方法赋值。
crob 对象名 = new 类名();
示例(含输出):
crob u = new User();
print("crob-created");
crob 封装式对象
说明:在定义处直接对字段赋值并定义方法;right 控制是否允许后续 remake。对象允许定义方法功能,采用函数定义的方式进行定义。
crob 对象名 (class: 类名, right: boolean) {
字段名 = 表达式
func 方法名(参数...) { // 定义方法时无须定义函数的返回类型,否则会报错
语句...
}
}
- right: true 时允许后续
remake
this 关键字
说明:在封装式定义对象时,可以使用this关键字指向当前对象,该方法是用于解决与方法中的参数重名的问题。
示例(含输出):
crob u (class: User, right: true) {
name = "Tom";
age = 20;
func greet() {
print("hi", this.name); // this指向对象u,拿到类结构中的name属性
}
}
u.greet();
remake 重构对象
说明:当对象在定义时 right: true,可用 remake 更新字段与方法。
remake 对象名 {
字段名 = 表达式
func 方法名(参数...) {
语句...
}
}
示例(含输出):
remake u {
age = 21;
func greet(this: class) {
print("hello", this.name);
}
}
u.greet();
自增自减赋值运算
说明:在数值上下文提供自增/自减快捷方法。
- toUp(step=1): singlef — 返回原值,并加 step
- getUp(step=1): singlef — 加 step 后返回
- toDn(step=1): singlef — 返回原值,并减 step
- getDn(step=1): singlef — 减 step 后返回
示例(含输出):
let x: int = 10;
x.toUp(2); // 返回 10,x 变为 12
print(x.getUp(3)); // x 变为 15 并打印 15
注意事项:
remake需要目标对象在定义时right: true。