<div class="chatlog__message-group"> <div id="chatlog__message-container-471558284466454528" class="chatlog__message-container" data-message-id="471558284466454528"> <div class="chatlog__message"> <div class="chatlog__message-aside"><img class="chatlog__avatar" src="https://cdn.discordapp.com/avatars/293624673265123328/accd07acc220a18568ba46a6e9ede18a.png?size=512" alt="Avatar" loading="lazy"></div> <div class="chatlog__message-primary"> <div class="chatlog__header"><span class="chatlog__author" style="color:rgb(17,128,106)" title="koher" data-user-id="293624673265123328">koher</span> <a href="/channels/306995750418513920?category=main&channel=swift-2&message_id=471558457766707200"><span class="chatlog__timestamp" title="Wednesday, July 25, 2018 6:04 AM"></span></a><a href="#chatlog__message-container-471558284466454528">7/25/2018 6:04 AM</a></div> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">↓の方法、 <code class="chatlog__markdown-pre chatlog__markdown-pre--inline">Base</code> が値型だとオーバーヘッド大きそう。 <code class="chatlog__markdown-pre chatlog__markdown-pre--multiline language-swift">struct Extension<Base> { let base: Base init (_ base: Base) { self.base = base } } protocol ExtensionCompatible { associatedtype Compatible static var ex: Extension<Compatible>.Type { get } var ex: Extension<Compatible> { get } } extension ExtensionCompatible { static var ex: Extension<Self>.Type { return Extension<Self>.self } var ex: Extension<Self> { return Extension(self) } }</code> <a href="https://qiita.com/motokiee/items/e8f07c11b88d692b2cc5">https://qiita.com/motokiee/items/e8f07c11b88d692b2cc5</a></span></div> <div class="chatlog__embed"> <div class="chatlog__embed-color-pill" style="background-color:rgba(85,197,0,255)"></div> <div class="chatlog__embed-content-container"> <div class="chatlog__embed-content"> <div class="chatlog__embed-text"> <div class="chatlog__embed-title"><a class="chatlog__embed-title-link" href="https://qiita.com/motokiee/items/e8f07c11b88d692b2cc5"> <div class="chatlog__markdown chatlog__markdown-preserve">SwiftのExtensionをモダンでオシャレに実装する - Qiita</div> </a></div> <div class="chatlog__embed-description"> <div class="chatlog__markdown chatlog__markdown-preserve"> <h2>Extensionをモダンでオシャレにしたい</h2> この記事の結論を先に書いておくと、 <code class="chatlog__markdown-pre chatlog__markdown-pre--multiline language-swift">UIColor.yamabuki</code> のように書いているExtensionを以下のようにオシャレに書くことができる、と... </div> </div> </div> <div class="chatlog__embed-thumbnail-container"><a class="chatlog__embed-thumbnail-link" href="https://images-ext-1.discordapp.net/external/ps5YPQmRxQulaU8XG5YmfAfPZ-74j0sY8VdJrnF2FR8/https/cdn.qiita.com/assets/qiita-fb-2887e7b4aad86fd8c25cea84846f2236.png"> <img class="chatlog__embed-thumbnail" src="https://images-ext-1.discordapp.net/external/ps5YPQmRxQulaU8XG5YmfAfPZ-74j0sY8VdJrnF2FR8/https/cdn.qiita.com/assets/qiita-fb-2887e7b4aad86fd8c25cea84846f2236.png" alt="Thumbnail" loading="lazy"> </a></div> </div> </div> </div> </div> </div> </div> <div id="chatlog__message-container-471558457766707200" class="chatlog__message-container" data-message-id="471558457766707200"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Wednesday, July 25, 2018 6:04 AM">6:04 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">↓ここで毎回コピーが走る。 <code class="chatlog__markdown-pre chatlog__markdown-pre--multiline language-swift"> var ex: Extension<Self> { return Extension(self) }</code></span></div> </div> </div> </div> </div>