C++中如何实现和Go中一样的可选类型?
在C++中可以使用std::optional来实现和Go中一样的可选类型。std::optional是C++17中引入的一个类模板,用于表示一个值可能存在也可能不存在的情况。它可以包含任何类型的值,包括基本类型、自定义类型、指针等。如果值存在,可以通过解引用std::optional对象来访问它;如果值不存在,解引用std::optional对象将会抛出一个std::bad_optional_access异常。
下面是一个使用std::optional的示例:
#include <iostream>
#include <optional>
std::optional<int> divide(int a, int b) {
if (b == 0) {
return std::nullopt;
} else {
return a / b;
}
}
int main() {
auto result = divide(10, 2);
if (result) {
std::cout << "Result: " << *result << std::endl;
} else {
std::cout << "Division by zero" << std::endl;
}
return 0;
}
在上面的示例中,函数divide返回一个std::optional
原文地址: http://www.cveoy.top/t/topic/chV0 著作权归作者所有。请勿转载和采集!