小编Tho*_*ard的帖子

为什么朱莉娅不能超集蟒蛇?

Julia语言看起来与python非常相似,而类的概念(如果一个人应该将其作为这样的东西来解决)更多的是你在C中使用的.创作者决定差异的原因有很多. OOP.仍然会如此努力(相比于创造朱莉娅在第一位令人印象深刻)找到一些规范的方式来解释蟒蛇到朱莉娅,从而获得所有的python库?

python language-design julia

5
推荐指数
1
解决办法
468
查看次数

value_or的替代方法,对返回的类型无关紧要

我已经构建了一个Card重载<<运算符的小类,主要是打印出套装和卡的价值.

实现细节与我想问的问题无关,只是假设显而易见.因为Card我建了一堂课CardDeck.当然CardDeck可以用完卡片.这激发了我这种尝试:

std::optional<Card> CardDeck::drawCard() {
    if (this->Cards.empty()) {
        return std::nullopt;
    }
    else {
        Card card = this->Cards.front();
        this->Cards.pop_front();
        return std::optional<Card>{card};
    }
}
Run Code Online (Sandbox Code Playgroud)

现在可以绘制一张卡片并处理空牌组的可能性是客户端代码使用的责任CardDeck,但是这个方法并不总是返回一个值.我喜欢那个解决方案.

无论如何,C++的新手我做了天真的ansatz:

std::cout<< cardDeck.drawCard().value_or("Out of cards!");

这作为失败的类型,"Out of cards!"就是char*但不是Card.

我的问题:有没有办法保证优雅的oneliner没有检查和访问vaule /在两个单独的地方使用替换?

c++ stdoptional

2
推荐指数
1
解决办法
61
查看次数

标签 统计

c++ ×1

julia ×1

language-design ×1

python ×1

stdoptional ×1