-
Notifications
You must be signed in to change notification settings - Fork 19
API Docs
表示可能出错的结果,它内部有两种状态:Ok和Err,当执行操作成功,状态为Ok,可以通过 unwrap()
方法获得值(类型为 T
);如果操作失败,状态为Err,可以使用 unwrapErr()
方法获得错误信息 ErrorInfo
公有方法
bool isOk() const
返回状态是否为Ok
bool isErr() const
返回状态是否为Err
const T& unwrap() const&/T& unwrap() &/T& unwrap() &&
当状态为Ok,返回操作成功获得的值
const T& unwrapErr() const&/T& unwrapErr() &/T& unwrapErr() &&
当状态为Err,返回具体的错误
T unwrapOr(T&& def) const
若状态为Ok,则返回操作成果的值,否则返回所输入的参数def
T unwrapOrElse(F&& def) const
若状态为Ok,则返回操作成果的值,否则返回调用def的结果
auto map(F&& f) const -> Result<decltype(f(std::declval<T>()))>
返回另一个Result,如果原本状态为Err,则返回Result与原本一致;如果原本状态为Ok,则返回Result中存储为调用f的结果(将成功执行操作所得到的结果作为调用f函数唯一的参数)
auto andThen(F&& f) const -> decltype(f(std::declval<T>()))
若状态为Ok,则返回调用f的结果(将成功执行操作所得到的结果作为调用f函数唯一的参数),否则返回具体的错误
可以将常用的辅助函数在此定义,并声明为静态成员函数
单例类,只能使用 getInstance
静态方法获取实例。封装有网络请求与响应的功能。方法参数为接口请求参数,与空返回值,Result<T>
类型参数的函数对象
公有方法形如
getXXData(T1 param1, T2 param2, std::function<void(Result<ResponseEntity>)> callback);
内部采用异步回调方式,不会阻塞当前线程。函数对象 callback
表示对请求得到的参数进行处理,在网络请求收到结果时被自动调用
void getSongLyric(SongId id, std::function<void(Result<SongLyricEntity>)> callback);
给定歌曲ID,获取歌曲歌词,得到 Result<SongLyricEntity>
类型的结果,并调用 callback
Note
其他方法请自行阅读以下文档,如果现有方法没有覆盖到所需功能,请自行添加所需代码。包括网络类(Service/NeteaseCloudMusic/CloudMusicClient
),反序列化器(Service/NeteaseCloudMusic/Deserializer
),实体类(Service/NeteaseCloudMusic/Response
)
单例类,只能通过 getInstance
静态方法获取实例。管理需要本地存储的配置项
Tip
可以将播放列表序列化后通过本类存储。
QVariant value(QString key, QVariant defaultValue = QVariant());
返回 key
配置项的值,如果该项不存在,则返回 defaultValue
void setValue(QString key, QVariant value);
设置 key
配置项的值为 value