注意点:違いに気づいたタイミングで更新しているので、網羅的に記載しているわけではありません。
言語特性
どちらも静的型付き言語。
コンパイル時などの実行前の段階で、変数や定数の方の情報を決定するプログラミング言語。
数値の型
| データ型 | Kotlin | Swift |
|---|---|---|
| 整数 8bit | Byte | Int8 |
| 整数 16bit | Short | Int16 |
| 整数 32bit | Int | Int32 |
| 整数 64bit | Long | Int64 |
| 整数 プラットフォームに依存(※) | – | Int |
| 浮動小数点 32bit | Float | Float |
| 浮動小数点 64bit | Double | Double |
※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が使えることにびっくりした。
コメントを残す