{"blog_url":"https://yohhoy.hatenadiary.jp/","image_url":null,"provider_name":"Hatena Blog","categories":["Rust"],"type":"rich","height":"190","author_url":"https://blog.hatena.ne.jp/yohhoy/","version":"1.0","published":"2018-08-01 00:00:00","width":"100%","provider_url":"https://hatena.blog","url":"https://yohhoy.hatenadiary.jp/entry/20180801/p1","description":"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9eRust\u306b\u304a\u3044\u3066Option<Option<T>>\u304b\u3089Option<T>\u3078\u5909\u63db\u3059\u308b\u65b9\u6cd5\u3002 // \u30ca\u30a4\u30fc\u30d6\u306a\u5b9f\u88c5 fn flatten<T>(x: Option<Option<T>>) -> Option<T> match x { Some(x) => x, None => None, } } // and_then\u30b3\u30f3\u30d3\u30cd\u30fc\u30bf fn flatten<T>(x: Option<Option<T>>) -> Option<T> { x.and_then(|x| x) } // ? (Try)\u30aa\u30da\u30ec\u30fc\u30bf\uff3bRust 1.22\u4ee5\u964d\uff3d fn flatten<T>(x: Option<Op\u2026","author_name":"yohhoy","title":"\u5165\u308c\u5b50Option\u306e\u5e73\u5766\u5316(flatten)","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fyohhoy.hatenadiary.jp%2Fentry%2F20180801%2Fp1\" title=\"\u5165\u308c\u5b50Option\u306e\u5e73\u5766\u5316(flatten) - yohhoy\u306e\u65e5\u8a18\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_title":"yohhoy\u306e\u65e5\u8a18"}