Skip to content

Latest commit

 

History

History
45 lines (35 loc) · 1.95 KB

Collections with primitive types.md

File metadata and controls

45 lines (35 loc) · 1.95 KB

Collections with primitive types

Статус Ожидание Реальность
⚠️ Коллекции с элементами примитивных типов не требуют дополнительных маппингов Маппинги не требуются только для String-типа

Пояснения

Примитивные типы Kotlin-а, указанные в generic-ах, превращаются в специальные обёртки над примитивными типами:

  • List<Byte> -> [KotlinByte]
  • List<UByte> -> [KotlinUByte]
  • List<Short> -> [KotlinShort]
  • List<UShort> -> [KotlinUShort]
  • List<Int> -> [KotlinInt]
  • List<UInt> -> [KotlinUInt]
  • List<Long> -> [KotlinLong]
  • List<ULong> -> [KotlinULong]
  • List<Float> -> [KotlinFloat]
  • List<Double> -> [KotlinDouble]
  • List<Boolean> -> [KotlinBoolean]

И два исключения (аналогично optional-ам:

  • List<String> -> [String]
  • List<Char> -> [Any]

Чтобы передать Swift-типы (не литералы) в качестве аргументов в Kotlin-функции, придётся писать маппинги:

func collectionsExample(intList: [Int]) {
    let _: [KotlinInt] = types.intList(list: [1,2,3])					// ok
    let _: [KotlinInt] = [1, 2, 3] + types.listType(list: [1, 3, 4])	// ok
    
    // Маппинг
    let li2: [KotlinInt] = types.listType(
	    list: intList.map({ p in KotlinInt(value: p) })
	)
}

Оглавление