QList<float* 类型的 NULL 返回值>

NULL return value of type QList<float*>

本文关键字:返回值 NULL gt lt float QList 类型      更新时间:2023-10-16

我想为返回 QList<float*>(如果处理失败,我想返回)。

如何正确构建空QList<float*>?

通常,对于非指针类型,没有"null 值"这样的东西。选项包括:

  • 失败时引发异常
  • 返回一个空列表,如果它永远不能是一个有效的结果
  • 返回可为空的包装器类型,如 boost::optional<QList>std::pair<bool, QList>

返回指向 QList 的指针,然后测试它的空指针,我认为这就是你的要求,对不起,如果我误解了

void someClass::test()
{
    std::shared_ptr<QList<float> > testList = doSomething()
    if(testList == nulllptr)
    {
        // Then its null
    }
    else
    {
       // Do whatever you want with it
    }
}
std::shared_ptr<QList<float>> someClass::doSomething()
{
    std::shared_ptr<QList<float>> someList; // = NULL at the moment 
    if(weWantValues) // Lets just pretend this bool knows if we want values 
    {
        someList = std::make_shared<QList<float>(); // now a shared pointer to a list
        // Populate with whatever values you want. use ".get()" or "->" to access list
    }
    // this may be null or populated so check if it == nullptr before using
    // Like we do in the function above
    return someList;
}
您可以使用

return {}而不是nullptr,如下所示:

QList<QObject *> getModel(int id)
{
    if (id < 0)
        return {};
    return m_myModel->model();
}