Successfully reported this slideshow.
Your SlideShare is downloading. ×

Scala dreaded underscore

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Les06
Les06
Loading in …3
×

Check these out next

1 of 15 Ad

More Related Content

Advertisement

More from RUDDER (20)

Recently uploaded (20)

Advertisement

Scala dreaded underscore

  1. 1. Scala dreaded _ François Armand
  2. 2. Too many use for _ ? © Normation 2010 - 2
  3. 3. Too many use for _ ? © Normation 2010 - 3
  4. 4. It's always a kind of joker 1/ “Everything” 2/ “Give me a variable name but – I don't care of what it is – and/or – don't want to pollute my namespace with it” © Normation 2010 - 4
  5. 5. 1. Import all Java “import *” © Normation 2010 - 5
  6. 6. 2. var initialization to default value Highly discourage in idiomatic Scala: – Prefer val against var – Try to always initialize a variable © Normation 2010 - 6
  7. 7. 3. Unused variables In higher order functions © Normation 2010 - 7
  8. 8. 3. Unused variables In pattern matching © Normation 2010 - 8
  9. 9. 4. Anonymous parameters In higher order functions © Normation 2010 - 9
  10. 10. 4. Anonymous parameters In partial functions © Normation 2010 - 10
  11. 11. 5. Don't import name in namespace © Normation 2010 - 11
  12. 12. 6. Syntactic sugar for existential type Existential type ? http://stackoverflow.com/questions/1031042/scalas-existential-types Java: – Type erasure and raw types – “?” generic wildcard Scala © Normation 2010 - 12
  13. 13. 6. Syntactic sugar for existential type And in pattern matching © Normation 2010 - 13
  14. 14. And some more _ with an other char 1) Accessors in tuples • ("foo", "bar")._2  // getter for “bar” 2) _* In repeated parameter (Java 1.5 varargs) • String.format("one: %s two: %s", "1" , "2") • String.format("one: %s two: %s", Seq("1","2"):_*) In XML pattern matching • See Scala XML book http://www.scala­lang.org/node/131  In pattern matching, as sequence wildcard • Search for UnapplySeq documentation 3) In identifier name ending with an operator • ex: “query?” not valide name, use “query_?” 4) In setter name • _= http://stackoverflow.com/questions/1392862/scala-overriding-a-non-abstract-def-with-a-var/1393389#1393389 © Normation 2010 - 14
  15. 15. Q&A Thanks ! © Normation 2010 15

×