跳到主要内容

面向对象

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