KotlinとSwiftを比較してみた

注意点:違いに気づいたタイミングで更新しているので、網羅的に記載しているわけではありません。

言語特性

どちらも静的型付き言語。

コンパイル時などの実行前の段階で、変数や定数の方の情報を決定するプログラミング言語。

数値の型

データ型KotlinSwift
整数 8bitByteInt8
整数 16bitShortInt16
整数 32bitIntInt32
整数 64bitLongInt64
整数 プラットフォームに依存(※)Int
浮動小数点 32bitFloatFloat
浮動小数点 64bitDoubleDouble

※32bitのプラットフォームなら32bit、64bitのプラットフォームなら64bitとなる

オプショナルな変数の扱い方

オプショナルな値を変換したい時

Kotlin

val optionalValue: Int? = 3
val result = optionalValue?.let{ it * 2 } // 6

Swift

let optionalValue: Int? = 3
let result = optionalValue.map({ value in value * 2 }) // 6

{} の中で変換した結果がオプショナルになる可能性がある場合は、flatMapを使った方が返却値の型がシンプルになる↓

// URL.init(string:)はnilを返却する可能性がある
let urlString: String? = "https://hogehoge.com/index.html"

// mapで String -> URL に変換
let result1 = urlString.map(URL.init(string:)) // Optional<Optional<URL>>型

// flatMapで String -> URL に変換
let result2 = urlString.flatMap(URL.init(string:)) // Optional<URL>型

ひとことメモ:mapやflatMapって、KotlinだとCollectionの操作するときに使うイメージだったから、Kotlinのletと同じようにmapが使えることにびっくりした。


投稿日

カテゴリー:

,

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA