标量
一个标量就是一个单独的数据。本节将介绍标量的创建、读取和更新方式及使用示例。
创建标量
创建标量,就是将 C++ 原生类型转换为 DolphinDB 中类型。在本小节例子中,创建出的数据对象都存储在 ConstantSP 中。基本数据类型都定义在<ScalarImp.h>和<ConstantImp.h>中。
API 提供两种创建标量的方法:
- 使用 new
语句创建:
ConstantSP i = new Int(1); //创建了一个Int类型的对象,值为1 ConstantSP s = new String("DolphinDB"); //创建了一个String类型的对象,值为"DolphinDB" ConstantSP t = new Date(2022, 11, 1); //创建了一个Date类型对象,值为2022.11.1 ConstantSP d = new Double(1.2); //创建了一个Double类型对象,值为1.2
- 使用<Util.h>中提供的工具方法来创建。下面创建的四个对象与 new
语句创建的四个对象等价。
ConstantSP i = Util::createInt(1); ConstantSP s = Util::createString("DolphinDB"); ConstantSP t = Util::createDate(2022, 11, 1); ConstantSP d = Util::createDouble(1.2);
读取数据
读取数据,就是将存储在 ConstantSP 中的数据转换为 C++ 原生类型。在读取标量的值时,要根据 ConstantSP 中的实际类型对应的 C++ 原生类型来调用相应的方法。类型对应关系表格见 数据类型。
所有类型都拥有 getString() 方法,将对应类型的值转换为字符串。
int ci = i->getInt();
std::string cs = s->getString();
int cd = t->getInt(); //Date底层数据类型是int
double cv = d->getDouble();
更新数据
在更新标量的值时,要根据 ConstantSP 中的实际类型对应的 C++ 原生类型来调用相应的方法。类型对应关系表格见 数据类型。
i->setInt(2);
s->setString("C++ API");
t->setInt(5000); //含义是距离1970年1月1日的天数
d->setDouble(2.3);