desvendando o sistema de tipos do scala
play

Desvendando o Sistema de Tipos Do Scala Paulo Jcranky - PowerPoint PPT Presentation

Desvendando o Sistema de Tipos Do Scala Paulo Jcranky Siqueira @ @ Paulo.siqueira gmail.com / jcranky Quem Sou Eu ? Developer ( ) Scala, Java @ JCranky Quem Sou Eu ? Gamer Minecraft E outros Jogos Indie @ JCranky Quem


  1. Desvendando o Sistema de Tipos Do Scala “ ” Paulo Jcranky Siqueira @ @ Paulo.siqueira gmail.com / jcranky

  2. Quem Sou Eu ? Developer ( ) Scala, Java @ JCranky

  3. Quem Sou Eu ? Gamer Minecraft E outros Jogos Indie @ JCranky

  4. Quem Sou Eu ? Musician Wannabe! @ JCranky

  5. Para quem trabalho TecSinapse Dealers de carros – çã LIP Inova o e Pesquisa @ JCranky

  6. Alvos: Sistema de Tipos … Tipos Varios Tipos de Inferencia de Tipos Implicits @ JCranky

  7. Sistema de Tipos a type system is a collection of rules that assign a property called a type to the various constructs, such as variables, expressions, functions or modules ) – wikipedia @ JCranky

  8. Sistema de Tipos Limita o que podemos fazer ó com os elementos do c digo @ JCranky

  9. Sistema de Tipos Int Valores inteiros entre -2147483648 -2147483648 e @ JCranky

  10. Sistema de Tipos String Conjunto de caracteres @ JCranky

  11. Sistema de Tipos Char ú Um nico caracter @ JCranky

  12. Sistema de Tipos JsValue Qualquer implementacao ( ) trait da API de Json do Play @ JCranky

  13. Sistema de Tipos JsValue JsString, JsArray, JsNumber Etc @ JCranky

  14. Inferencia de Tipos Primitivos Classes Objetos @ JCranky

  15. Inferencia de Tipos é Retorno de m todos / Functions @ JCranky

  16. Inferencia de Tipos Alguns casos que ã N o funcionam @ JCranky

  17. Inferencia de Tipos Inferencia com Tipos Parametrizados @ JCranky

  18. Tipos existenciais ã Tipos Paramatrizados s o ó obrigat rios ã “ ” N o existem Raw Types como em JAva @ JCranky

  19. Tipos existenciais Pode ser problema ao integrar com Java ex. subitens @ JCranky

  20. á Inferencia: Boas Pr ticas Ajudar o compilador Ajudar nossos amiguinhos Documentar APIs @ JCranky

  21. á Inferencia: Boas Pr ticas Qual o tipo do nome ? = val nome (" ") Some EasyForger @ JCranky

  22. á Inferencia: Boas Pr ticas E em java... ã N o use raw types @ JCranky

  23. é M todos com Tipos Parametrizados [ ]( ) def foo T param: T [ ]( ()) foo File new File @ JCranky

  24. é M todos com Tipos Parametrizados Utilidade limitada por enquanto é At vermos Type Bounds @ JCranky

  25. Upper Type Bounds ' ' Aceita filhos de < T : Type @ JCranky

  26. Upper Type Bounds jsonprint @ JCranky

  27. Structural Types Tipo Estrutural... Oferece a estrutura a ser seguida @ JCranky

  28. Lower Type Bounds ' ' Aceita Pais de > T : Type @ JCranky

  29. Lower Type Bounds Calculo do tipo da lista resultante: [ > ] ( ) [ ] def :: B : A x: B : List B @ JCranky

  30. Co / in / Contra Variance Assunto mala @ JCranky

  31. Covariance ã Relac o de heranca Com tipos parametrizados ' ' Parametro filho de @ JCranky

  32. Invariancia ã Tipo parametrizado n o varia ã ã N o existe relac o de heranca @ JCranky

  33. ContraVariancia Tipo parametrizado varia no sentido oposto da heranca ' ' Parametro pai de @ JCranky

  34. õ Convers es implicitas “ ” Ou implicit views @ JCranky

  35. õ Convers es implicitas Em tipos primitivos, todas as linguagens tem → Int Long @ JCranky

  36. õ Convers es implicitas ã é Ou o oposto, mas n o implicito → Long Int @ JCranky

  37. õ Convers es implicitas Com classes, temos apenas ã uma mudanca na vis o ( ã ê ) convers o na refer ncia → JsValue JsString @ JCranky

  38. õ Convers es implicitas Casting subindo a hierarquia ( ) sujeito a exception → JsString JsValue @ JCranky

  39. õ Convers es implicitas õ Contexto: convers es entre quaisquer tipos ã é 100% á N o autom tico Mas vai parecer! @ JCranky

  40. õ Convers es implicitas ex. json @ JCranky

  41. õ Convers es implicitas Ex. DSL EasyForger Item / Block / ItemStack @ JCranky

  42. õ Convers es implicitas Grande ferramenta para ã ó evitar repetic o de c digo @ JCranky

  43. õ Convers es implicitas Grande ferramenta para escrever DSLs ( e pega erros em tempo de ã ) compilac o @ JCranky

  44. õ Convers es implicitas “ Pimp my library ” Ex.: Predef + RichInt / StringWarpper etc @ JCranky

  45. Type Classes Simplificando: Uma forma de classificar outras classes E oferecer funcionalidade extra @ JCranky

  46. Type Classes Uso de Parametros í impl citos @ JCranky

  47. Type Classes Metodo TraversableOnce.sum Classe Numeric @ JCranky

  48. Itens avancados õ Sugest es para quem tem Estomado ã = N o vamos ver! p @ JCranky

  49. Itens avancados [- - + ] trait CanBuildFrom From, Elem, To type projection phantom types path dependent types Lenses Etc ... @ JCranky

  50. õ Sugest es de Estudo: Existential Types x Raw Types: 2015 02 26 http://typelevel.org/blog/ / / /rawtypes.html @ JCranky

  51. õ Sugest es de Estudo: ê Infer ncia de Tipos a Fundo: https://skillsmatter.com/skillscasts 5841- - - / demystifying type inference @ JCranky

  52. ? Questions ! Throw them at me! If it pleases you... @ JCranky

  53. “ ” Paulo Jcranky Siqueira @ @ Paulo.siqueira gmail.com / jcranky

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend