scala
by Milel F
1. operator overloading
1.1. operator is method
2. nest package
3. access modifer
3.1. protected
3.1.1. derived class only,only own type
3.2. additional parameter
3.2.1. private[AccessQualifier]
3.2.2. protected[this]
4. type inference
4.1. compile time
4.2. Any<->Nothing
4.3. Option:getOrElse
4.4. "=" or void method
4.5. _* in parameter
4.6. covariance/contravariance
4.6.1. <: upper bound
4.6.2. >: lower bound
4.6.3. List[+T]
4.6.4. List[-T]
5. implicit type
5.1. Predef
5.2. at most one
6. for
6.1. for([pattern<-generator;definition*]+;filter*) [yield] expression
7. match
7.1. ...case List(1,2,else@_*)...print(else)...
7.2. pattern variables-> lowerCase;Contants->upperCase
7.3. case class
7.3.1. sealed
7.3.2. match(some:Any)...case_
7.4. extractor
7.4.1. unapply()
7.4.1.1. return sth. named as parameters
7.4.1.2. vs. apply();oppsite
7.4.2. symbol @ extractor()
7.5. reg ex
7.5.1. is extractor auto
7.5.2. get Or check
8. Structural Typing
8.1. "type"
8.2. type Bloggable = { def toHtml(): HtmlFragment }
9. import
9.1. import Top.{B => _, C => _, _}
9.2. import Top2.{A => OtherA}
10. == vs. eq()
11. companion class/object
11.1. access private,no boundaries
12. functional
12.1. function value
12.1.1. is obj in scala
12.2. closure
12.3. high order function
12.3.1. take function as parameter
12.4. currying
12.4.1. fun()()()(),fun{}{}{}{}
12.5. positional notation
12.5.1. _
12.5.2. {max( _, _)}
12.5.3. max _
12.5.4. max
13. with traits
13.1. extends abtract class
13.1.1. limit with by type
13.2. super.xx()
13.2.1. <--
14. List
14.1. ::
14.2. :::
14.2.1. faster