Size: a a a

2020 November 27

IG

Ivan Gaydamakin in iOS Fathers
а все ок
источник

M

Mayor in iOS Fathers
conforms to это для лоховских типов, которые nsobject
источник

IG

Ivan Gaydamakin in iOS Fathers
да это я уже метод тыка мучал
источник

ВК

Виталий Кудрин... in iOS Fathers
Mayor
conforms to это для лоховских типов, которые nsobject
просто без них лоховской свифт ничего не умеет
источник

IG

Ivan Gaydamakin in iOS Fathers
Mayor
extension Array {
 @discardableResult
 mutating func pop<T>(to type: T.Type) -> Self {
   if let index = firstIndex(where: { $0 is T }) {
     removeLast(count - index - 1)
   }
   
   return self
 }
}
эта штука я так понял массив изменяет или массив в итоге не трогает?
источник

M

Mayor in iOS Fathers
Ivan Gaydamakin
эта штука я так понял массив изменяет или массив в итоге не трогает?
изменяет
источник

IG

Ivan Gaydamakin in iOS Fathers
мне не надо массив трогать))
источник

M

Mayor in iOS Fathers
Ivan Gaydamakin
мне не надо массив трогать))
extension Array {
 @discardableResult
 mutating func pop<T>(to type: T.Type) -> Self {
   if let index = firstIndex(where: { $0 is T }) {
     return Array(self[...index])
   }
   
   return self
 }
}
источник

ВК

Виталий Кудрин... in iOS Fathers
а вот и говнокод подъехал
источник

M

Mayor in iOS Fathers
extension Array {
 @discardableResult
 func pop<T>(to type: T.Type) -> ArraySlice<Element> {
   if let index = firstIndex(where: { $0 is T }) {
     return self[...index]
   }
   
   return ArraySlice(self)
 }
}


а лучше так
источник

M

Mayor in iOS Fathers
extension Array {
 func pop<T>(to type: T.Type) -> ArraySlice<Element>? {
   if let index = firstIndex(where: { $0 is T }) {
     return self[...index]
   }
   
   return nil
 }
}
источник

M

Mayor in iOS Fathers
вообще идеально
источник

M

Mayor in iOS Fathers
extension Array {
 func pop<T>(to _: T.Type) -> ArraySlice<Element>? {
   firstIndex(where: { $0 is T })
     .map { self[...$0] }
 }
}
источник

M

Mayor in iOS Fathers
swift-way
источник

ВК

Виталий Кудрин... in iOS Fathers
лол, и все три варианта "edited"
источник

M

Mayor in iOS Fathers
Нет предела совершенству
источник

ВК

Виталий Кудрин... in iOS Fathers
наделал говнокода и убирает по буковке
источник

M

Mayor in iOS Fathers
@MeGaPk а тебе нужно сохранить этот последний элемент в конце?
источник

M

Mayor in iOS Fathers
если нет, то можно так:
func pop<T>(to _: T.Type) -> ArraySlice<Element>? {
 prefix(while: { !($0 is T) })
}
источник

IG

Ivan Gaydamakin in iOS Fathers
Mayor
если нет, то можно так:
func pop<T>(to _: T.Type) -> ArraySlice<Element>? {
 prefix(while: { !($0 is T) })
}
префикс это до, а как получить после ?
источник