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

Recommend


More recommend