|
|
|
@ -112,14 +112,14 @@
|
|
|
|
|
<li>Criada em 2006 por Graydon Hoare.</li> |
|
|
|
|
<li>Patrocinada pela Mozilla em 2009.</li> |
|
|
|
|
<li>Versão 1.0 em 2015.</li> |
|
|
|
|
<li>Versão atual: 1.37</li> |
|
|
|
|
<li>Versão atual: 1.38</li> |
|
|
|
|
</ul> |
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
<aside class="notes"> |
|
|
|
|
Parte burocrática da apresentação. |
|
|
|
|
|
|
|
|
|
PS: Pode ser que, quando você essa apresentação, 1.37 |
|
|
|
|
PS: Pode ser que, quando você essa apresentação, 1.38 |
|
|
|
|
não seja mais a versão atual; a cada 6 semanas, sai uma |
|
|
|
|
nova versão do compilador. |
|
|
|
|
</aside> |
|
|
|
@ -269,7 +269,7 @@
|
|
|
|
|
|
|
|
|
|
<section> |
|
|
|
|
<pre><code class="hljs rust" data-trim> |
|
|
|
|
fn main() -< int{ |
|
|
|
|
fn main() -> int{ |
|
|
|
|
let a = 2; |
|
|
|
|
a = 3; |
|
|
|
|
println!("{}", a); |
|
|
|
@ -507,6 +507,14 @@ fn main() {
|
|
|
|
|
</aside> |
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
<section> |
|
|
|
|
<h4>Drop</h4> |
|
|
|
|
|
|
|
|
|
<pre><code class="hljs rust fragment"> |
|
|
|
|
pub fn drop<T>(_x: T) { } |
|
|
|
|
</code></pre> |
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
<section> |
|
|
|
|
<h3>Regras do Borrow Checker</h3> |
|
|
|
|
|
|
|
|
@ -548,36 +556,8 @@ fn main() {
|
|
|
|
|
</aside> |
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
<section data-transition="fade"> |
|
|
|
|
<pre><code class="hljs go" data-trim>presente := Presente { ... } |
|
|
|
|
canal <- presente |
|
|
|
|
</code></pre> |
|
|
|
|
|
|
|
|
|
<aside class="notes"> |
|
|
|
|
Num exemplo em Go, criamos uma estrutura e passamos |
|
|
|
|
essa estrutura para outra thread através de um |
|
|
|
|
canal. |
|
|
|
|
</aside> |
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
<section data-transition="fade"> |
|
|
|
|
<pre><code class="hljs go" data-trim>presente := Presente { ... } |
|
|
|
|
canal <- presente |
|
|
|
|
presente.abrir()</code></pre> |
|
|
|
|
|
|
|
|
|
<aside class="notes"> |
|
|
|
|
... e depois de passar o presente pra outra pessoa, |
|
|
|
|
nós abrimos o presente. |
|
|
|
|
|
|
|
|
|
Mas se estamos entregando um presente pra alguém, |
|
|
|
|
como é que estamos abrindo o presente? |
|
|
|
|
|
|
|
|
|
O borrow checker não permite esse tipo de coisa: |
|
|
|
|
Ele irá barrar a função atual de continuar |
|
|
|
|
utilizando a variável porque, afinal de contas, |
|
|
|
|
agora a região de memória pertence à outra função |
|
|
|
|
(uma função que está rodando em outra thread). |
|
|
|
|
</aside> |
|
|
|
|
<section> |
|
|
|
|
<img class="stretch" src="_images/processor-speed.png" alt=""> |
|
|
|
|
</section> |
|
|
|
|
|
|
|
|
|
<section> |
|
|
|
|