|
|
@ -78,10 +78,28 @@ |
|
|
|
</section> |
|
|
|
</section> |
|
|
|
</section> |
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<section> |
|
|
|
|
|
|
|
<section> |
|
|
|
|
|
|
|
<img src="_images/avatar-20170726.png" alt="Me" style="float:left;width:200px;" class="no-border"> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div> |
|
|
|
|
|
|
|
<ul class="empty"> |
|
|
|
|
|
|
|
<li>Júlio Biason</li> |
|
|
|
|
|
|
|
<li>https://functional.cafe/@juliobiason</li> |
|
|
|
|
|
|
|
<li>julio.biason@pm.me</li> |
|
|
|
|
|
|
|
<li><a href="http://presentations.juliobiason.net">http://presentations.juliobiason.net</a></li> |
|
|
|
|
|
|
|
</ul> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</section> |
|
|
|
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
|
|
<section> |
|
|
|
<section> |
|
|
|
<section> |
|
|
|
<section> |
|
|
|
<p> |
|
|
|
<p> |
|
|
|
<a href="https://insights.stackoverflow.com/survey/2019">A languagem mais amada segundo o StackOverflow Survey</a> |
|
|
|
<a href="https://insights.stackoverflow.com/survey/2019"> |
|
|
|
|
|
|
|
A languagem mais amada segundo o StackOverflow |
|
|
|
|
|
|
|
Survey 2019 |
|
|
|
|
|
|
|
</a> |
|
|
|
|
|
|
|
|
|
|
|
<p class="fragment">... pelo 4⁰ ano seguido.</p> |
|
|
|
<p class="fragment">... pelo 4⁰ ano seguido.</p> |
|
|
|
</p> |
|
|
|
</p> |
|
|
@ -213,21 +231,38 @@ fn main() { |
|
|
|
<section> |
|
|
|
<section> |
|
|
|
<h3>Regras do Borrow Checker</h3> |
|
|
|
<h3>Regras do Borrow Checker</h3> |
|
|
|
|
|
|
|
|
|
|
|
<ul> |
|
|
|
<p class="fragment"> |
|
|
|
<li class="fragment">Uma região de memória tem apenas um dono.</li> |
|
|
|
Uma região de memória tem apenas um dono. |
|
|
|
<li class="fragment">Uma região de memória pode ter inifitas referências |
|
|
|
</p> |
|
|
|
<span class="fragment"> |
|
|
|
|
|
|
|
desde que elas não durem mais do que o dono. |
|
|
|
<p class="fragment"> |
|
|
|
</span> |
|
|
|
A região é desalocada quando o dono sair de escopo. |
|
|
|
</li> |
|
|
|
</p> |
|
|
|
<li class="fragment"> |
|
|
|
</section> |
|
|
|
É possível ter uma referência mutável de uma região de memória |
|
|
|
|
|
|
|
<span class="fragment"> |
|
|
|
<section> |
|
|
|
mas para haver uma referência mutável ela deve ser a <strong>única</strong> |
|
|
|
<h3>Regras do Borrow Checker</h3> |
|
|
|
referência. |
|
|
|
|
|
|
|
</span> |
|
|
|
<p class="fragment"> |
|
|
|
</li> |
|
|
|
Uma região de memória pode ter inifitas referências. |
|
|
|
</ul> |
|
|
|
</p> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p class="fragment"> |
|
|
|
|
|
|
|
... desde que elas não durem mais do que o dono. |
|
|
|
|
|
|
|
</p> |
|
|
|
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<section> |
|
|
|
|
|
|
|
<h3>Regras do Borrow Checker</h3> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p class="fragment"> |
|
|
|
|
|
|
|
É possível ter uma referência mutável de uma região de memória. |
|
|
|
|
|
|
|
</p> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p class="fragment"> |
|
|
|
|
|
|
|
... mas para haver uma referência mutável ela deve ser |
|
|
|
|
|
|
|
a <strong>única</strong> referência. |
|
|
|
|
|
|
|
</p> |
|
|
|
</section> |
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
|
|
<section> |
|
|
|
<section> |
|
|
@ -257,6 +292,17 @@ presente.abrir()</code></pre> |
|
|
|
<p class="fragment">(structs)</p> |
|
|
|
<p class="fragment">(structs)</p> |
|
|
|
</section> |
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<section> |
|
|
|
|
|
|
|
<h3>struct</h3> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<pre><code class="hljs rust" data-trim> |
|
|
|
|
|
|
|
struct Present { |
|
|
|
|
|
|
|
package_color: String, |
|
|
|
|
|
|
|
content: String |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
</code></pre> |
|
|
|
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
|
|
<section> |
|
|
|
<section> |
|
|
|
<h3>enum</h3> |
|
|
|
<h3>enum</h3> |
|
|
|
<pre><code class="hljs rust" data-trim> |
|
|
|
<pre><code class="hljs rust" data-trim> |
|
|
@ -381,6 +427,12 @@ OK(()) |
|
|
|
</section> |
|
|
|
</section> |
|
|
|
</section> |
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<section> |
|
|
|
|
|
|
|
<section> |
|
|
|
|
|
|
|
<h2>Macros</h2> |
|
|
|
|
|
|
|
</section> |
|
|
|
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
|
|
<section> |
|
|
|
<section> |
|
|
|
<section> |
|
|
|
<section> |
|
|
|
<h2>Crazy stuff</h2> |
|
|
|
<h2>Crazy stuff</h2> |
|
|
@ -495,6 +547,14 @@ fn call_isan(num: &str) -> Result<Success, Error> { |
|
|
|
</section> |
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
|
|
<section data-background='_images/thats-all-folks.jpg'> |
|
|
|
<section data-background='_images/thats-all-folks.jpg'> |
|
|
|
|
|
|
|
<div class="semi-opaque"> |
|
|
|
|
|
|
|
<ul class="empty"> |
|
|
|
|
|
|
|
<li>Júlio Biason</li> |
|
|
|
|
|
|
|
<li>https://functional.cafe/@juliobiason</li> |
|
|
|
|
|
|
|
<li>julio.biason@pm.me</li> |
|
|
|
|
|
|
|
<li><a href="http://presentations.juliobiason.net">http://presentations.juliobiason.net</a></li> |
|
|
|
|
|
|
|
</ul> |
|
|
|
|
|
|
|
</div> |
|
|
|
</section> |
|
|
|
</section> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|