{"title":"Swift\u306eOption\u3092Either(Result)\u306b\u3059\u308bExtension","author_name":"sakata_harumi","provider_name":"Hatena Blog","version":"1.0","blog_title":"JK\u306b\u306a\u308a\u305f\u3044","height":"190","image_url":null,"blog_url":"https://wanttobejk.com/","url":"https://wanttobejk.com/entry/2018/06/08/001954","type":"rich","width":"100%","categories":["Tech"],"html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwanttobejk.com%2Fentry%2F2018%2F06%2F08%2F001954\" title=\"Swift\u306eOption\u3092Either(Result)\u306b\u3059\u308bExtension - JK\u306b\u306a\u308a\u305f\u3044\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","published":"2018-06-08 00:19:54","author_url":"https://blog.hatena.ne.jp/sakata_harumi/","description":"Swift\u306eOptional\u3092Result\u306b\u3059\u308bExtension\u66f8\u3044\u305f\u306e\u3067\u30e1\u30e2\u3002 Result\u306f\u3053\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u5165\u308c\u3066\u307e\u3059 github.com \u5b9f\u88c5 import Result extension Optional { func toResult<E: Error>(error: E) -> Result<Wrapped, E> { guard let value = self else { return .failure(error) } return .success(value) } } \u30c6\u30b9\u30c8\u30b3\u30fc\u30c9 class OptionalExtensionTests: XCTestCase \u2026","provider_url":"https://hatena.blog"}