成员变量
成员变量是类中定义的变量。它们属于类的实例,每个实例都有自己的一套成员变量。成员变量可以在类的方法中访问和修改。
声明成员变量
成员声明时需要指定成员变量的类型,在 DolphinDB 中根据变量的数据不同,声明方法也不同:
标量
标量包括基本的数据类型,如 INT, CHAR, FLOAT, DOUBLE, STRING 等。声明方式为:变量名 ::
数据类型。例如:age :: INT、name ::
STRING。
常规向量
在声明常规向量的成员变量时,其方式与声明标量相似,但需在数据类型后添加 VECTOR
以指明该成员变量为一个常规向量。声明方式为:变量名 :: 数据类型
VECTOR。例如:age :: INT
VECTOR、name :: STRING VECTOR。
数组向量
数组向量类型的成员变量与声明常规向量相似,但需在数据类型后添加 [] 以指明该成员变量为一个数组向量。声明方式为:变量名 ::
数据类型[] VECTOR。例如:age :: INT[]
VECTOR。
列式元组
列式元组声明方式为:变量名 :: ANY[数据类型] VECTOR。例如:price :: ANY[INT]。
数据对
数据对类型成员变量声明方式为:变量名 :: 数据类型
PAIR。其中,数据类型只能为标量。例如:pr :: INT
PAIR。
矩阵
矩阵类型成员变量声明方式为:变量名 :: 数据类型
MATRIX。其中,数据类型只能为标量。例如:m :: DOUBLE
MATRIX。
集合
集合类型成员变量声明方式为:变量名 :: 数据类型 SET。其中,数据类型只能为标量。例如:st
:: STRING SET。
表
表类型成员变量声明方式为:变量名 :: TABLE。例如:tb ::
TABLE。
字典
字典类型成员变量声明方式为:变量名 :: DICT[键类型,
值类型]。其中,键类型只能为标量;值类型支持任意类型标注,包括嵌套
DICT、VECTOR、PAIR、MATRIX、SET、TABLE 等,且支持任意嵌套深度。例如:
-
d1 :: DICT[INT, DOUBLE] -
d2 :: DICT[STRING, INT VECTOR] -
d3 :: DICT[STRING, DICT[INT, DOUBLE]] -
d4 :: DICT[INT, INT PAIR]
Class
声明方式为:变量名 :: 类名,例如 g :: X。
其它类型
对于无法使用上述类型标注的成员变量(如流计算引擎对象等),可使用 ANY 类型:变量名 :: ANY。
获取成员变量
提供
attributeNames、attributeValues、attributeTypes方法,可以获取类实例的所有成员变量名称、属性值、成员变量类型。
class Person {
name :: STRING
age :: INT
def Person(name_, age_) {
name = name_
age = age_
}
}
p = Person("Sam", 12)
attributeNames(p)
// output: ["name","age"]
attributeValues(p)
/* output:
name->Sam
age->12
*/
attributeTypes(p)
| attr | type |
|---|---|
| name | STRING |
| age | INT |
