SlideShare a Scribd company logo
1 of 9
Kotlinかわいい
2016/02/21
名古屋LT会
MasuqaT(@occar421)
自己紹介: MasuqaT
 ますかっと(@occer421)
 MasuqaT.NET(http://masuqat.net)
 興味
 C#が関わる技術
Rx, UWP, Roslyn, ASP.NET Core 1.0 ...
 CG技術
 Webフロント系・アプリ
 Kotlin
 本人情報
(本名)
 大学3年生
 去年 高専から3年次編入
 高専時代はプロコン自由部門や
Imagine Cupに応募したりしてました
2016/02/21 How cute Kotlin is.
Kotlinとは
2016/02/21 How cute Kotlin is.
To create a Java-compatible language, That compiles at least as fast as Java,
Make it safer than Java, i.e. statically check for common pitfalls such as null pointer dereference,
Make it more concise than Java by supporting variable type inference, higher-order functions (closures), extension functions, mixins
and first-class delegation, etc;
And, keeping the useful level of expressiveness (see above), make it way simpler than the most mature competitor – Scala.
By FAQ – Kotlin Programming Language(https://kotlinlang.org/docs/reference/faq.html)
Kotlinとは
 JetBrains社が開発した新しいJava系の言語
 2011年 ロシア生まれ
 2月15日に正式版1.0が出たばかり
 ロゴが変わった
 Javaとの互換性を重視している
 Getter・Setterの面倒さとはサヨナラ
 柔軟性が高くていろいろ書ける
 今日のLTの内容
2016/02/21 How cute Kotlin is.
objectあれこれ
 シングルトン(インスタンスが1つのみ) 静的クラスの代わりにも
 object Singleton { }
 静的メンバ シングルトンなメンバを作るイメージ
 クラス内で companion object{ val staticValue = 1 }
 匿名クラス
 var obj = object: IHoge{}
 抽象メソッドが1つのインターフェース(SAM Type)ならラムダ式で関数に渡せる
 言語の概念3つをobjectとして統一した捉え方をしている
2016/02/21 How cute Kotlin is.
object
Delegationあれこれ
 クラスに対して
 class A(var h:IHoge):IHoge by h { }
 これだけでAはIHogeのメソッドやプロパティを実装しているように見せられる
 コードの依存の分離や単体テストに有利
 プロパティに対して
 クラス内で val v:String by lazy { “Lazy...” }
 プロパティについての、決まりきった処理を簡単に実装できる
 遅延初期化(lazy)や変化の通知(observable)を用意 自作も可能
2016/02/21 How cute Kotlin is.
by
関数あれこれ
 関数を最後の引数にとるときの特別な書き方:関数を()カッコの外に
 doRepeatly(2) { i -> print(“Hey!: $i”) } //Hey!: 1 Hey!: 2
 関数を引数にとる関数の定義で…
 fun alpha(r: Int, block: (Int) -> Unit) { block(r) }
blockはIntを引数でUnit(void)を返す C#ではAction<int>
普通の高階関数はこれ
 fun beta(r: Int, block: Int.() -> Unit) { r.block() }
blockは拡張関数(拡張元インスタンスには’this’でアクセスできる) ‘this’は省略可能!
fun Int.hoge() { print(“hoge: $this”) }でIntの拡張関数hoge()を定義できる。
2016/02/21 How cute Kotlin is.
fun
外部からクラスに
メソッドを追加
(擬似的に)
10.hoge()
// hoge: 10
糖衣構文
 fun foo(r: String, block: String.() -> Unit)= block(r)
foo(“Test”) {
print(length) // 4
print(toUpperCase()) // TEST
}
 おわかりいただけただろうか?
 let, run, apply, withが用意されている
2016/02/21 How cute Kotlin is.
blockは拡張関数
thisでアクセスできる
最後が関数引数のときの
特別な書き方
this.toUpperCase()
thisの省略
まとめ
 表現の自由度が高い
 Android開発者はぜひぜひ
 ※スライド中のコードは
もっと省略して書ける
部分があります
2016/02/21 How cute Kotlin is.
http://try.kotlinlang.org/

More Related Content

Similar to Kotlinかわいい @20160221 名古屋LT会

東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみたYoshiki Shibukawa
 
continuatioN Linking
continuatioN LinkingcontinuatioN Linking
continuatioN LinkingKouji Matsui
 
160608 01
160608 01160608 01
160608 01openrtm
 
みんなの知らないネットワークの話
みんなの知らないネットワークの話みんなの知らないネットワークの話
みんなの知らないネットワークの話Wataru NOGUCHI
 
スクレイピングは避けられない
スクレイピングは避けられないスクレイピングは避けられない
スクレイピングは避けられないDaiki Kojima
 
エンジニア 李昇禹(イスンウ) 履歴書 (20160410)
エンジニア 李昇禹(イスンウ) 履歴書 (20160410)エンジニア 李昇禹(イスンウ) 履歴書 (20160410)
エンジニア 李昇禹(イスンウ) 履歴書 (20160410)SeungWoo Lee
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみてKota Mizushima
 
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例Joni
 
Going Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No ServersGoing Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No ServersKeisuke Nishitani
 
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Hirofumi Iwasaki
 

Similar to Kotlinかわいい @20160221 名古屋LT会 (10)

東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた東京Node学園 今できる通信高速化にトライしてみた
東京Node学園 今できる通信高速化にトライしてみた
 
continuatioN Linking
continuatioN LinkingcontinuatioN Linking
continuatioN Linking
 
160608 01
160608 01160608 01
160608 01
 
みんなの知らないネットワークの話
みんなの知らないネットワークの話みんなの知らないネットワークの話
みんなの知らないネットワークの話
 
スクレイピングは避けられない
スクレイピングは避けられないスクレイピングは避けられない
スクレイピングは避けられない
 
エンジニア 李昇禹(イスンウ) 履歴書 (20160410)
エンジニア 李昇禹(イスンウ) 履歴書 (20160410)エンジニア 李昇禹(イスンウ) 履歴書 (20160410)
エンジニア 李昇禹(イスンウ) 履歴書 (20160410)
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
 
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
Fukuoka.NET Conf 2018: 挑み続ける!Dockerコンテナによる ASP.NET Core アプリケーション開発事例
 
Going Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No ServersGoing Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No Servers
 
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
 

Kotlinかわいい @20160221 名古屋LT会

  • 2. 自己紹介: MasuqaT  ますかっと(@occer421)  MasuqaT.NET(http://masuqat.net)  興味  C#が関わる技術 Rx, UWP, Roslyn, ASP.NET Core 1.0 ...  CG技術  Webフロント系・アプリ  Kotlin  本人情報 (本名)  大学3年生  去年 高専から3年次編入  高専時代はプロコン自由部門や Imagine Cupに応募したりしてました 2016/02/21 How cute Kotlin is.
  • 3. Kotlinとは 2016/02/21 How cute Kotlin is. To create a Java-compatible language, That compiles at least as fast as Java, Make it safer than Java, i.e. statically check for common pitfalls such as null pointer dereference, Make it more concise than Java by supporting variable type inference, higher-order functions (closures), extension functions, mixins and first-class delegation, etc; And, keeping the useful level of expressiveness (see above), make it way simpler than the most mature competitor – Scala. By FAQ – Kotlin Programming Language(https://kotlinlang.org/docs/reference/faq.html)
  • 4. Kotlinとは  JetBrains社が開発した新しいJava系の言語  2011年 ロシア生まれ  2月15日に正式版1.0が出たばかり  ロゴが変わった  Javaとの互換性を重視している  Getter・Setterの面倒さとはサヨナラ  柔軟性が高くていろいろ書ける  今日のLTの内容 2016/02/21 How cute Kotlin is.
  • 5. objectあれこれ  シングルトン(インスタンスが1つのみ) 静的クラスの代わりにも  object Singleton { }  静的メンバ シングルトンなメンバを作るイメージ  クラス内で companion object{ val staticValue = 1 }  匿名クラス  var obj = object: IHoge{}  抽象メソッドが1つのインターフェース(SAM Type)ならラムダ式で関数に渡せる  言語の概念3つをobjectとして統一した捉え方をしている 2016/02/21 How cute Kotlin is. object
  • 6. Delegationあれこれ  クラスに対して  class A(var h:IHoge):IHoge by h { }  これだけでAはIHogeのメソッドやプロパティを実装しているように見せられる  コードの依存の分離や単体テストに有利  プロパティに対して  クラス内で val v:String by lazy { “Lazy...” }  プロパティについての、決まりきった処理を簡単に実装できる  遅延初期化(lazy)や変化の通知(observable)を用意 自作も可能 2016/02/21 How cute Kotlin is. by
  • 7. 関数あれこれ  関数を最後の引数にとるときの特別な書き方:関数を()カッコの外に  doRepeatly(2) { i -> print(“Hey!: $i”) } //Hey!: 1 Hey!: 2  関数を引数にとる関数の定義で…  fun alpha(r: Int, block: (Int) -> Unit) { block(r) } blockはIntを引数でUnit(void)を返す C#ではAction<int> 普通の高階関数はこれ  fun beta(r: Int, block: Int.() -> Unit) { r.block() } blockは拡張関数(拡張元インスタンスには’this’でアクセスできる) ‘this’は省略可能! fun Int.hoge() { print(“hoge: $this”) }でIntの拡張関数hoge()を定義できる。 2016/02/21 How cute Kotlin is. fun 外部からクラスに メソッドを追加 (擬似的に) 10.hoge() // hoge: 10
  • 8. 糖衣構文  fun foo(r: String, block: String.() -> Unit)= block(r) foo(“Test”) { print(length) // 4 print(toUpperCase()) // TEST }  おわかりいただけただろうか?  let, run, apply, withが用意されている 2016/02/21 How cute Kotlin is. blockは拡張関数 thisでアクセスできる 最後が関数引数のときの 特別な書き方 this.toUpperCase() thisの省略
  • 9. まとめ  表現の自由度が高い  Android開発者はぜひぜひ  ※スライド中のコードは もっと省略して書ける 部分があります 2016/02/21 How cute Kotlin is. http://try.kotlinlang.org/