Здравствуйте, std.denis, Вы писали:
SD>Еще бы транслятор под JVM, цены бы ему не было
В JVM поддерживаются перегрузки функций. В Свифте — нет. Так что язык придется дорабатывать напильником. Проще взять скалу. Есть все что в Свифте и намного больше.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: [ann] Язык программирования Swift 2.2 (Apple)
Здравствуйте, std.denis, Вы писали:
VD>>В JVM поддерживаются перегрузки функций. В Свифте — нет. SD>При всём уважении.. где ты такое прочитал? Ну не мог же ты написать такую чушь голословно.
В Swift-e поддерживается перегрузка функций, но есть одно "но". Если использовать в одном проекте Swift и Objective-C, из-за того что в Objective C перезагрузка функций не поддерживается, то можно получить в определённых случаях "compiler error". Может Влад это имел ввиду.
Но это проблема не языка Swift а его использования вместе с Objective C.
Успехов
Re[5]: [ann] Язык программирования Swift 2.2 (Apple)
I>В Swift-e поддерживается перегрузка функций, но есть одно "но". Если использовать в одном проекте Swift и Objective-C, из-за того что в Objective C перезагрузка функций не поддерживается, то можно получить в определённых случаях "compiler error". Может Влад это имел ввиду.
Как-то маловероятно ;) Смысл-то противоположный получается
Re[4]: [ann] Язык программирования Swift 2.2 (Apple)
Здравствуйте, std.denis, Вы писали:
SD>При всём уважении.. где ты такое прочитал? Ну не мог же ты написать такую чушь голословно.
Где-то прочитал. Сейчас посмотрел, действительно перегрузка поддерживается. Может с чем-то перепутал. Но был уверен, что они перегрузку в Свифте не сделали.
Тогда остаются разные мелочи вроде отсутствия исключений (или здесь я тоже ошибаюсь?). Объектные энумы и прочую ерунду можно эмулировать.
С исключениями сложнее. Живя в мире дотнета нельзя не уметь обрабатывать исключений. Хотя, наверно, можно не уметь их генерировать. Это можно в функцию обернуть.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: [ann] Язык программирования Swift 2.2 (Apple)
Здравствуйте, VladD2, Вы писали:
VD>Тогда остаются разные мелочи вроде отсутствия исключений (или здесь я тоже ошибаюсь?). Объектные энумы и прочую ерунду можно эмулировать.
VD>С исключениями сложнее. Живя в мире дотнета нельзя не уметь обрабатывать исключений. Хотя, наверно, можно не уметь их генерировать. Это можно в функцию обернуть.
VD>>С исключениями сложнее. Живя в мире дотнета нельзя не уметь обрабатывать исключений. Хотя, наверно, можно не уметь их генерировать. Это можно в функцию обернуть.
В мире явы, Влад
I>С версии 2.0 есть: I>Error Handling
Оно как бы и исключения, но по сути обертка вокруг NSError – сработает если юзерский код дергает throw, не сработает на разыменовании nil.
Хотя в общем-то наверное можно поймать java-исключение и завернуть в swift-исключение.
Re[7]: [ann] Язык программирования Swift 2.2 (Apple)
Здравствуйте, Iso12, Вы писали:
I>С версии 2.0 есть: I>Error Handling
А это разве исключения? Это нечто на них похожее, но ими не являющееся. От туда:
Error handling in Swift resembles exception handling in other languages, with the use of the try, catch and throw keywords. Unlike exception handling in many languages—including Objective-C—error handling in Swift does not involve unwinding the call stack, a process that can be computationally expensive. As such, the performance characteristics of a throw statement are comparable to those of a return statement.
Так что при реализации на дотнете придется менять их семантику. Все описания функций как throws пойдут лесом, а любая функция сможет сгенерировать исключение. Соответственно код на таком Свифте вряд ли будут полностью совместим с кодом на эпловской реализации.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.