YouTubeでの紹介が分かりやすかったので、見ながら学習した
YouTube
New Standard Library Features in Kotlin 1.5.0
https://www.youtube.com/watch?v=MyTkiT2I6-8
この動画を見ながら、気になった箇所をメモしつつ、キャプチャで貼り付けていく。
だいぶ手抜きのメモなので荒いと思う。
符号なし整数型
UByte
UShort
UInt
ULong
これはマイナスが入らない型で、使用することによって「マイナスが入らない」という宣言にもなる。
UIntは最小値が0, 最大値が40億
Intは最小値が-20億、最大値が20億強
マイナスが入らない分、範囲をシフトしてより大きな整数を格納できる。
使用時にパフォーマンスのペナルティはない
新しい文字列大文字化関数
toUpperCase()
toLowerCase()
toTitleCase()
ロケールに依存しない
便利かも
bool値を作成する便利関数
この関数はtrueとfalseをそれらにマップする
それ以外の場合は例外をスローする
toBooleanStrictOrNull()
は正確ではない場合はnullを返す
文字の文字コードに変換できる
文字をチェックする多くの機能(5:32)
これは便利そう
整数除算の新機能
マイナスの割り算用の関数ができた
floorDiv()
電卓だと、
5 / 3 = 1.666666
(-5) / 3 = -1.666666
違いはfloor除算は常に結果を丸める(切り捨て)ことです ← 🤔 ???
mod()
という剰余関数も追加された
modはfloor除算の余りを返す
Kotlinで rem とよばれ % 演算子とは異なる
主な違いは、結果が正か負かという符号
mod
は負の値で呼び出された場合でも、常に負ではない値を生成する(?)
使い所は、循環データ構造で役立つらしい(よく分からん。。。)
java.nio.file.Pathの拡張機能
Pathの文字列を便利に連結してサブパスを構築できるようになった
ファイル読み込みに便利そう
NIOパスはたくさんあるので、IDEのオートコンプリートやKotlinlang.orgのAPIドキュメントを見て欲しい
Kotlinコレクション
例えば、以下のusersからageがnullではない値を抽出するとき
mapNotNullとfirstOrNullを組み合わせて取得できるが、
これは別の中間リストを作成している+チェーンを明示的にシーケンスに変換する。
Kotlin 1.5だと、もっと良い書き方ができる。
firstNotNullOf()
とfirstNotNullOfOrNull
この関数では渡されたセレクターの最初のnull以外の値を返す。
要素がない場合はnullを返す
DurationAPIの進化(8:38)
時間間隔の正確な測定を提供する
タイプセーフな方法で
現在、内部的にLongを使用している。
期間オブジェクトと言うらしい
KotlinTestライブラリ
KMPとJVMの構成の改善
新しいアサーション関数の登場
値の型を確認するために、 assertIs<T>()
と assertIsNot<T>()
を使用できるようになった。
コレクション、シーケンスなどは assertContentEquals()
で比較できる
期待される引数と、実際の引数に、同じ要素が同じ順序で含まれているかどうか?
を判定できる。
doubleとfloatのアサーションも改善された
備考
日本語版の公式ブログもあるので、正直そちらのほうが分かりやすいと思った
https://blog.jetbrains.com/ja/kotlin/2021/04/kotlin-1-5-0-rc-released-ja/
今回はYouTubeから学習してoutputしたチャレンジングな記事だった