Size: a a a

2021 June 07

1

1nTrance in SwiftBook
Благодарю
источник

A

Alexander in SwiftBook
Через CAShapeLayer'ы. Они могут такие пунктиры рисовать.
источник

DA

Diyas Agmanov in SwiftBook
можете ответить на этот вопрос
источник

D

D_lind in SwiftBook
Спасибо)
источник

IS

Igor Smirnov in SwiftBook
я бы через reduce сделал бы:
let source = [3, 1, 4, 1, 5, 9, 2, 5, 3, 5, 8]
var power = 1
let result = source.reversed().reduce(0) {
   defer { power *= 10 }
   return $0 + $1 * power
}
print(result)

31415925358
источник

DB

Denis Bystruev in SwiftBook
Это хорошо, что есть любители функционального программирования.

Если есть время, хорошо бы запустить 1 млн раз и сравнить скорость.
источник

IS

Igor Smirnov in SwiftBook
import Foundation

@discardableResult
func test1() -> Int {
   let inputArray = [3, 1, 4, 1, 5, 9, 2, 5, 3, 5, 8]
   var mult = 1
   var sum = 0
   for element in inputArray.reversed() {
       sum += mult * element
       mult *= 10
   }
   return sum
}

@discardableResult
func test2() -> Int {
   let source = [3, 1, 4, 1, 5, 9, 2, 5, 3, 5, 8]
   var power = 1
   return source.reversed().reduce(0) {
       defer { power *= 10 }
       return $0 + $1 * power
   }
}

let num = 10_000

var date = Date()
(0..<num).forEach { _ in test1() }
print(Date().timeIntervalSince(date))

date = Date()
(0..<num).forEach { _ in test2() }
print(Date().timeIntervalSince(date))

на 14% быстрее функциональное решение:
7.138848066329956
6.8629679679870605
источник

IS

Igor Smirnov in SwiftBook
Полагаю потому что нет лишней записи в промежуточную переменную ‘sum’. Но это не точно)
источник

IS

Igor Smirnov in SwiftBook
@dbystruev будешь наверное смеятся, но иммутабельная функция еще быстрее, вот такая:
@discardableResult
func test3() -> Int {
   let source = [3, 1, 4, 1, 5, 9, 2, 5, 3, 5, 8]
   return source.reversed().enumerated().reduce(0) {
       return $0 + $1.element * Int(pow(10, Double($1.offset)))
   }
}
источник

IS

Igor Smirnov in SwiftBook
несмотря на постоянный вызов 10^x
источник

IS

Igor Smirnov in SwiftBook
2.4, 2.2 и 1,5 по времени из последнего запуска
источник

DB

Denis Bystruev in SwiftBook
Это прекрасно. Интересно залезть в код и посмотреть, что же они там наоптимизировали.
источник

IS

Igor Smirnov in SwiftBook
я думаю есть готовая таблица степеней десятки. как та же таблица синусов тоже уже есть же
источник

A

Artur in SwiftBook
Подскажите как получить цифры после 16 знака в дабл? 7.285091295366731e+38 почему они не отображаются?
источник

FF

Fedor Fokin in SwiftBook
Потому что дабл хранит 15 знаков после запятой
источник

A

Artur in SwiftBook
это я понял, а есть что-то, что хранит больше? Или как остальные вычислить?
источник

AB

A B in SwiftBook
Decimal
источник

А

Андрей in SwiftBook
Всем привет ,чем отличается += от .append()?
источник

Д

Дмитрий in SwiftBook
В контексте чего?
источник

А

Андрей in SwiftBook
В контексте добавления в массив элементов
источник