short introduction of implicit conversion by tis, inc
DESCRIPTION
http://scalamatsuri.org/TRANSCRIPT
![Page 1: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/1.jpg)
Copyright © 2014 TIS Inc. All rights reserved.
Sep. 6, 2014.
ScalaMatsuri 2014 LT
Atsushi Oku
TIS Inc.
Short introduction of
Implicit Conversion
![Page 2: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/2.jpg)
Copyright © 2014 TIS Inc. All rights reserved. 1
About Me
• Programming in Java over 15 years
• A member of R&D Division
(Strategic Technology Center)
• Joined in our Scala research project in Mar. ‘14
![Page 3: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/3.jpg)
Copyright © 2014 TIS Inc. All rights reserved. 2
About this LT
• I participated in Scala training courses offered by
Typesafe Inc.
– “Fast track to Scala” / “Advanced Scala”
• Through these trainings, I become to like
"Implicit Conversion" (and DSL) feature.
• So I ’ll try to introduce this feature and small
sample codes.
![Page 4: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/4.jpg)
Copyright © 2014 TIS Inc. All rights reserved. 3
About training courses
• http://typesafe.com/how/trainings
• Some courses can be participated from
anywhere in the world "virtually"
– even if you are at home in Japan
– by using webcam, headset and VNC software
![Page 5: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/5.jpg)
Copyright © 2014 TIS Inc. All rights reserved. 4
Implicit Conversion
• Why no error?
`1’ (Int) doesn’t have `->’ method
![Page 6: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/6.jpg)
Copyright © 2014 TIS Inc. All rights reserved. 5
Implicit Conversion
• If compiler find a type error,
the compiler looks for implicit
conversion.
![Page 7: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/7.jpg)
Copyright © 2014 TIS Inc. All rights reserved.
When does compiler look for ...
Type mismatch looking for implicit
conversion to the excepted type
(from Double to Int)
Receiver 'Int' doesn’t have `->' method
looking for implicit conversion
of the receiver (from Int to X which has
`->' method)
Ex1
Ex2
6
![Page 8: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/8.jpg)
Copyright © 2014 TIS Inc. All rights reserved.
Define Implicit Conversion
• Any method name is OK
• Implicit conversion has to be in scope
in order to be applied.
7
![Page 9: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/9.jpg)
Copyright © 2014 TIS Inc. All rights reserved.
Add new method to existing class
• New method `sub' is added to Int !
8
![Page 10: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/10.jpg)
Copyright © 2014 TIS Inc. All rights reserved.
Implicit class
• Since Scala 2.10, `implicit class' is available
9
![Page 11: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/11.jpg)
Copyright © 2014 TIS Inc. All rights reserved.
My First DSL
10
• I'd like to write codes in my DSL like this
• My simple Date class is like this
![Page 12: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/12.jpg)
Copyright © 2014 TIS Inc. All rights reserved.
My First DSL
11
![Page 13: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/13.jpg)
Copyright © 2014 TIS Inc. All rights reserved. 12
Please join our colleague's presentation
A-4 14:50 – 15:30
Scalable Generator: Using Scala in SIer Business
SIerに立ちはだかるScalaの壁に進化型ジェネレータで挑む
- TIS Yugo Maede
![Page 14: Short Introduction of Implicit Conversion by TIS, Inc](https://reader034.vdocument.in/reader034/viewer/2022052600/5573be20d8b42a6d618b4c68/html5/thumbnails/14.jpg)
THANK YOU