KotlinとSwiftのCollectionsの関係

投稿者: | 2019年2月3日

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で決定できる。

対応関係

実用上は以下のような対応を考えれば良さそうである。

  1. KotlinのArray+List1 <=> SwiftのArray

  2. KotlinのSet <=> SwiftのSet

  3. KotlinのMap <=> SwiftのDictionary

  4. Kotlin側ではMutable <=> Swiftでvar宣言

  5. Kotlin側ではImmutable <=> Swiftでlet宣言

KotlinではList、SwiftではArray

Functionalにする事も睨んでいるのでImmutableであることは重要な意味を持つ。List<List>のような多次元Listも作れそうなので次はこちらで色々調査を進めたい。


  1. Swift側でImmutableの必要がなければKotlinでもArrayでよいという意味を含んでいる。 ↩︎

コメントを残す