Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
let myCompany = [
"employees": [
"employee 1": ["attribute": "value"],
"employee 2": ["attribute": "value"],
"employee 3": ["attribute": "value"],
"employee 4": ["attribute": "value"],
"employee 5": ["attribute": "value"],
"employee 6": ["attribute": "value"],
"employee 7": ["attribute": "value"],
"employee 8": ["attribute": "value"],
"employee 9": ["attribute": "value"],
"employee 10": ["attribute": "value"],
"employee 11": ["attribute": "value"],
"employee 12": ["attribute": "value"],
"employee 13": ["attribute": "value"],
"employee 14": ["attribute": "value"],
"employee 15": ["attribute": "value"],
"employee 16": ["attribute": "value"],
"employee 17": ["attribute": "value"],
"employee 18": ["attribute": "value"],
"employee 19": ["attribute": "value"],
"employee 20": ["attribute": "value"],
]
]
https://github.com/apple/swift/commit/2cdd7d64e1e2add7bcfd5452d36e7f5fc6c86a03
Если пройти по ссылке в комментарии a553, то там вся нужная информация.
Сам баг тут: https://bugs.swift.org/browse/SR-305
Да, даже трудно представить, что там должно происходить чтобы добавление одного слагаемого замедляло компиляцию в десятки раз. Такое впечатление, что внутри где-то экоспоненциальный, или даже сверхэкспоненциальный (факториал) алгоритм.
let sunTrueLongitude: Double = meanAnomaly + 1.916 * sin(meanAnomaly * d2r) + 0.020 * sin(2 * meanAnomaly * d2r) + 282.634
private обозначает что вы раскладываете «грабли» в своём коде ибо заметить что кто-то где-то начал использовать приватную переменную — не так просто, а когда слово private вдруг заработает вам вдруг нужно будет эти проблемы решать — сразу по всему коду.Это не работает сейчас, но потом заработает, они это где-то уже обещали.В таких случаях у нормальных людей принято резервировать ключевое слово и при его обнаружении выдавать ошибку компиляции, а не «тихо» его съедать.
С питоном что? Там вроде всем было плевать на private, и ничего, все живы.Ммм… А как там написать
private так, чтобы оно было тихо проигнорировано?Я, разумеется, говорил не про методы, напрямую выставляющие приватные члены по ссылкам.Вы это серьёзно?
Прочтите это: http://www.gotw.ca/gotw/076.htm см. там пример под названием The Language Lawyer.Там в этом примере буковки сами прыг-скок и сложились в десяток строк, которые выглядят так:
template<>
void X::f( const Y& )
{
private_ = 2; // evil laughter here
}А теперь — внимание, вопрос: что есть X::f в языке C++?Простейший и совершенно законный трюк, никаких антипаттернов.Серьёзно? Антипаттерн — это распространённый подход к решению класса часто встречающихся проблем, являющийся неэффективным, рискованным или непродуктивным. Заметьте что тут нет и слова о «незаконности», «неопределённом поведении» и прочем.
cl.x = 200 я могу написать случайно. Просто набрав в редакторе cl. и увидев в списке доступных полей x.private, С++ — через friendов. Честно говоря подход Swift'а мне нравится больше, однако, к сожалению, в C++ нет полноценных модулей, а без них — такой подход работать не может.class MainViewController: UIViewController {...}
extension MainViewController: UITableViewDataSource {...}
extension MainViewController: UITableViewDelegate {...}
Swift и время компиляции