<div class="chatlog__message-group"> <div id="chatlog__message-container-887910566050562060" class="chatlog__message-container" data-message-id="887910566050562060"> <div class="chatlog__message"> <div class="chatlog__message-aside"><img class="chatlog__avatar" src="https://cdn.discordapp.com/avatars/189711109966659584/95280765d1be73ce985dce15ea3585f6.png?size=512" alt="Avatar" loading="lazy"></div> <div class="chatlog__message-primary"> <div class="chatlog__header"><span class="chatlog__author" style="color:rgb(237,171,161)" title="omochimetaru" data-user-id="189711109966659584">omochimetaru</span> <a href="/channels/375206337937801216?category=main&channel=swift-zatsu&message_id=887911447865204736"><span class="chatlog__timestamp" title="Thursday, September 16, 2021 3:59 AM"></span></a><a href="#chatlog__message-container-887910566050562060">9/16/2021 3:59 AM</a></div> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">最適化は、こう書き換えても同じだよね、ってときにやることで、 そんときに、とにかく速度を目指すか、コードサイズ肥大は避けるか、という戦略はユースケース次第</span></div> </div> </div> </div> <div id="chatlog__message-container-887910758107713688" class="chatlog__message-container" data-message-id="887910758107713688"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Thursday, September 16, 2021 4:00 AM">4:00 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">assertは安全性は提供しないですね</span></div> </div> </div> </div> <div id="chatlog__message-container-887910890538692628" class="chatlog__message-container" data-message-id="887910890538692628"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Thursday, September 16, 2021 4:00 AM">4:00 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">preconditionFailureはNeverなんですけど</span></div> </div> </div> </div> <div id="chatlog__message-container-887910922125975602" class="chatlog__message-container" data-message-id="887910922125975602"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Thursday, September 16, 2021 4:01 AM">4:01 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">assertionFailureはNeverじゃないんです</span></div> </div> </div> </div> <div id="chatlog__message-container-887911053005029377" class="chatlog__message-container" data-message-id="887911053005029377"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Thursday, September 16, 2021 4:01 AM">4:01 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">よってassertレベルは、デバッグのために仕込むようで、ロジックとしては存在しない扱いというか・・・</span></div> </div> </div> </div> <div id="chatlog__message-container-887911123880398858" class="chatlog__message-container" data-message-id="887911123880398858"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Thursday, September 16, 2021 4:01 AM">4:01 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">ロジック上存在しない事になる分岐なので、安全性を提供できない。</span></div> </div> </div> </div> <div id="chatlog__message-container-887911205908414535" class="chatlog__message-container" data-message-id="887911205908414535"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Thursday, September 16, 2021 4:02 AM">4:02 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">preconditionは、残る前提なので、安全性を提供するために使う。 配列のインデックスアクセスが範囲内であるかの検査とかのレベル。</span></div> </div> </div> </div> <div id="chatlog__message-container-887911272602026014" class="chatlog__message-container" data-message-id="887911272602026014"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Thursday, September 16, 2021 4:02 AM">4:02 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">で、安全性を放棄するとき、preconditionレベルの分岐を消せる。</span></div> </div> </div> </div> <div id="chatlog__message-container-887911447865204736" class="chatlog__message-container" data-message-id="887911447865204736"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Thursday, September 16, 2021 4:03 AM">4:03 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">assertレベルは開発中のバグ出し用で、preconditionレベルは出荷製品のメモリ安全性を担保する用</span></div> </div> </div> </div> </div>