LoginSignup
17
8

More than 3 years have passed since last update.

Kotlin 1.5.0の新しい標準機能

Last updated at Posted at 2021-05-09

YouTubeでの紹介が分かりやすかったので、見ながら学習した

YouTube

New Standard Library Features in Kotlin 1.5.0
https://www.youtube.com/watch?v=MyTkiT2I6-8

この動画を見ながら、気になった箇所をメモしつつ、キャプチャで貼り付けていく。

だいぶ手抜きのメモなので荒いと思う。

符号なし整数型

UByte
UShort
UInt
ULong

これはマイナスが入らない型で、使用することによって「マイナスが入らない」という宣言にもなる。

image.png

UIntは最小値が0, 最大値が40億

Intは最小値が-20億、最大値が20億強

マイナスが入らない分、範囲をシフトしてより大きな整数を格納できる。

image.png

使用時にパフォーマンスのペナルティはない

新しい文字列大文字化関数

toUpperCase()
toLowerCase()
toTitleCase()

image.png

ロケールに依存しない

便利かも

bool値を作成する便利関数

image.png

toBooleanStrict()関数もある
image.png

この関数はtrueとfalseをそれらにマップする

それ以外の場合は例外をスローする

toBooleanStrictOrNull()は正確ではない場合はnullを返す

文字の文字コードに変換できる

image.png

文字をチェックする多くの機能(5:32)

image.png

これは便利そう

整数除算の新機能

マイナスの割り算用の関数ができた

floorDiv()

image.png

電卓だと、
5 / 3 = 1.666666
(-5) / 3 = -1.666666

違いはfloor除算は常に結果を丸める(切り捨て)ことです ← 🤔 ???

mod() という剰余関数も追加された

modはfloor除算の余りを返す

image.png

Kotlinで rem とよばれ % 演算子とは異なる

主な違いは、結果が正か負かという符号

mod は負の値で呼び出された場合でも、常に負ではない値を生成する(?)

使い所は、循環データ構造で役立つらしい(よく分からん。。。)

java.nio.file.Pathの拡張機能

Pathの文字列を便利に連結してサブパスを構築できるようになった

image.png

ファイル読み込みに便利そう

NIOパスはたくさんあるので、IDEのオートコンプリートやKotlinlang.orgのAPIドキュメントを見て欲しい

Kotlinコレクション

例えば、以下のusersからageがnullではない値を抽出するとき

image.png
mapNotNullとfirstOrNullを組み合わせて取得できるが、

これは別の中間リストを作成している+チェーンを明示的にシーケンスに変換する。

Kotlin 1.5だと、もっと良い書き方ができる。

firstNotNullOf() とfirstNotNullOfOrNull

この関数では渡されたセレクターの最初のnull以外の値を返す。
要素がない場合はnullを返す

DurationAPIの進化(8:38)

時間間隔の正確な測定を提供する
タイプセーフな方法で

image.png

現在、内部的にLongを使用している。

期間オブジェクトと言うらしい

KotlinTestライブラリ

KMPとJVMの構成の改善

新しいアサーション関数の登場

値の型を確認するために、 assertIs<T>()assertIsNot<T>() を使用できるようになった。

image.png

コレクション、シーケンスなどは assertContentEquals()で比較できる

image.png

期待される引数と、実際の引数に、同じ要素が同じ順序で含まれているかどうか?
を判定できる。

doubleとfloatのアサーションも改善された

image.png

備考

日本語版の公式ブログもあるので、正直そちらのほうが分かりやすいと思った
https://blog.jetbrains.com/ja/kotlin/2021/04/kotlin-1-5-0-rc-released-ja/

今回はYouTubeから学習してoutputしたチャレンジングな記事だった

17
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
8