KotlinとSwiftでCollectionsの共通化を図る
KotlinとSwiftとでは似た文法が多くロジックをかなりの部分共通化できそうだと思っている。
データを扱うために配列を使うことを考えてこれまでに色々と実験してきた。
結論から言うとKotlinではImmutableなArrayと言うものを作ることができないことが分かった。(実はJavaもできない)
代用としてListを用いる実験をすることにする。その前にSwiftの標準ライブラリに入っているCollectionsとKotlinのそれを比べて見よう。
KotlinのCollections
Array以外にList, Set, MapがありImmutableである。
これら三つにはMutableなものが別に用意されている。
SwiftのCollections
Array, Set, Dictionaryが用意されている。immutableにするかmutableにするかは宣言時にlet-varで決定できる。
対応関係
実用上は以下のような対応を考えれば良さそうである。
- KotlinのArray+List1 <=> SwiftのArray
- KotlinのSet <=> SwiftのSet
-
KotlinのMap <=> SwiftのDictionary
-
Kotlin側ではMutable <=> Swiftでvar宣言
-
Kotlin側ではImmutable <=> Swiftでlet宣言
KotlinではList、SwiftではArray
Functionalにする事も睨んでいるのでImmutableであることは重要な意味を持つ。List<List
- Swift側でImmutableの必要がなければKotlinでもArrayでよいという意味を含んでいる。 ↩︎