Я перевожу некоторую бизнес-логику из iOS в Kotlin, и эта конструкция мне кажется странной
// AttachmentType.h
typedef NS_ENUM(NSUInteger, AttachmentType) {
AttachmentType1 = 0,
AttachmentType2 = 1,
AttachmentType3 = 2
}
// PhotoType.swift
enum PhotoType {
case t1(AttachmentType1), t2(AttachmentType1), t3(AttachmentType1)
var attachmentType: AttachmentType {
switch self {
case .t1(let type):
return type
case .t3(let type):
return type
case .t3(let type):
return type
}
}
}
Что меня смущает, так это ивар attachmentType
это по сути переменная типа AttachmentType
?
позволяет ли это все 9 перестановок двух типов.Например: могу ли я создать экземпляр PhotoType, который представляет AttachmentType1 с t1, AttachmentType1 с t2, AttachmentType1 с t3, AttachmentType2 с t1 и т. д. ...
Какая эквивалентная конструкция для Kotlin?9 закрытых классов?