{"author_url":"https://blog.hatena.ne.jp/gurrium/","author_name":"gurrium","width":"100%","blog_title":"\u305c\u306e\u305c","published":"2021-09-04 21:34:10","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgiarrium.hatenablog.com%2Fentry%2F2021%2F09%2F04%2F213410\" title=\"81\u65e5\u76ee - \u305c\u306e\u305c\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","version":"1.0","image_url":null,"provider_name":"Hatena Blog","url":"https://giarrium.hatenablog.com/entry/2021/09/04/213410","blog_url":"https://giarrium.hatenablog.com/","provider_url":"https://hatena.blog","title":"81\u65e5\u76ee","description":"\u65e5\u8a18 \u304a\u8179\u3059\u3044\u305f \u4eca\u65e5\u66f8\u3044\u305f\u30b3\u30fc\u30c9 protocol Shape { func draw() -> String } struct Triangle: Shape { func draw() -> String { return \"\"\" * ** *** \"\"\" } } let body = { Triangle() } func makeTriangle() -> some Shape { body() } func protoMakeTriangle() -> Shape { body() } let triangle = makeTriangle() print(triangle.dra\u2026","type":"rich","height":"190","categories":["Swift"]}