标量

一个标量就是一个单独的数据。本节将介绍标量的创建、读取和更新方式及使用示例。

创建标量

创建标量,就是将 C++ 原生类型转换为 DolphinDB 中类型。在本小节例子中,创建出的数据对象都存储在 ConstantSP 中。基本数据类型都定义在<ScalarImp.h>和<ConstantImp.h>中。

API 提供两种创建标量的方法:

  1. 使用 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
  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);