Альтернатива основной функции в Swift?

Я играл в Playground, и мне было интересно, где находится основная функция, в отличие от других языков, в Swift нет основной функции, какая альтернатива или метод используется для замены основной функции в Swift при использовании в архитектуре, отличной от Apple (при использовании вне iOS и OSX), так как Swift скоро станет открытым исходным кодом ??


person sriram hegde    schedule 26.08.2015    source источник
comment
возможный дубликат Где приложение Swift для iOS начинает свою жизнь? Хотя этот вопрос касается конкретно приложений iOS, ответ касается всех приложений Swift.   -  person nhgrif    schedule 26.08.2015
comment
Это не дубликат, потому что я использую Swift как независимый от ios, который находится на игровой площадке, то, что вы предложили, зависит от ios   -  person sriram hegde    schedule 26.08.2015
comment
Читай ответ, а не вопрос. И если вы хотите спросить конкретно только о файлах игровой площадки, я рекомендую сделать этот вопрос более ясным.   -  person nhgrif    schedule 26.08.2015
comment
Я прочитал ответ, он используется в appDelegate. В ios нет независимого AppDelegate (в целом), например, если вы используете swift вне архитектуры ios? а на игровой площадке программа запускается, даже если вы вводите правильный однострочный код, как она работает без какой-либо основной функции   -  person sriram hegde    schedule 26.08.2015
comment
В приложениях OS X также есть делегат приложения.   -  person nhgrif    schedule 26.08.2015
comment
Swift теперь с открытым исходным кодом, вы можете использовать Swift за пределами всей семьи Apple, в таком случае не будет AppDelegate.   -  person sriram hegde    schedule 26.08.2015
comment
Это еще не с открытым исходным кодом. В конечном итоге он будет с открытым исходным кодом.   -  person nhgrif    schedule 26.08.2015
comment
Ну, если вы хотите захватить рынок, вы должны быть первыми, кто получит новый продукт, таким образом, если его гунна в конечном итоге лучше начать внедрение!   -  person sriram hegde    schedule 26.08.2015
comment
То, что ваш вопрос выглядит как дубликат, но вы настаиваете, что на самом деле это не так, и использовали комментарии только для разъяснения того, что вы на самом деле спрашиваете, означает, что сам вопрос довольно неясен (и, следовательно, плохой вопрос, но не совсем - тема может быть).   -  person nhgrif    schedule 26.08.2015
comment
Какие еще подробности вы хотите?   -  person sriram hegde    schedule 26.08.2015
comment
Вопрос прямо в точку: где, черт возьми, основная функция, если нет основной функции, какую альтернативную технологию они используют? (Я бы принял дублированный ответ, если бы в конце концов Swift не собирался быть открытым исходным кодом), и, следовательно, этот вопрос требует upVote, а не downVote.   -  person sriram hegde    schedule 26.08.2015
comment
Неясно. Вы не приложили усилий, чтобы четко отличить свой вопрос от дубликата, на который он указывает. Комментарии не в счет. Мы не голосуем за или против каких-либо комментариев. При голосовании оценивается только вопрос. И никто не может голосовать более одного раза (и вы даже не знаете, голосовал ли я вообще за это). По крайней мере два человека считают, что ваш вопрос нуждается в доработке. И плюсов нет.   -  person nhgrif    schedule 26.08.2015
comment
Я отредактировал вопрос, пожалуйста, проверьте и прекратите голосовать без необходимости, это плохо, когда вы вносите справедливый вклад, а люди голосуют против него.   -  person sriram hegde    schedule 26.08.2015
comment
Опять же, у меня есть максимум один голос на вопрос. Если вы не хотите чувствовать себя плохо из-за того, что за ваш вопрос проголосовали отрицательно, решение абсолютно не состоит в том, чтобы умолять людей не ставить вам минусы. Решение состоит в том, чтобы писать хороший, качественный контент.   -  person nhgrif    schedule 26.08.2015
comment
Но некоторые люди, прежде чем даже спросить, что это может быть возможным дубликатом, они просто становятся Всеми Идеальными Людьми и просто голосуют против, не уведомляя должным образом причину этого, и даже когда причины указаны, они не отменяют свой голос против, вот что чувствует себя плохо и заставляет меня задуматься о том, чтобы напечатать еще один хороший вопрос, если я когда-нибудь столкнусь с ним снова.   -  person sriram hegde    schedule 26.08.2015
comment
Шрирам Хегде, я рекомендую вам пересмотреть свою оценку того, что делает вопрос хорошим. Если вы постоянно получаете минусы или мало голосов, нет более четкого признака того, что вы и сообщество не согласны с тем, что делает вопрос качественным. То, что у вас было 16 вопросов менее чем за 2 месяца (в среднем два вопроса в неделю), само по себе является приличным показателем того, что вы, возможно, не прикладываете достаточно усилий к своим вопросам, чтобы получить одобрение. На SO более 10 миллионов вопросов. Если вы хотите, чтобы за ваши вопросы проголосовали, смоделируйте их по образцу тех, за которые уже проголосовали.   -  person nhgrif    schedule 26.08.2015


Ответы (1)


В файле игровой площадки выполнение начинается с верхней части файла игровой площадки.

Если хотите, вы можете представить неявный func main() { чуть выше первой достижимой строки и } чуть ниже последней достижимой строки. Но это, наверное, неконструктивно. Вместо этого лучше просто понять, что не всем языкам нужна функция main, и Swift — один из таких языков.

Например, если мы напишем сценарий оболочки, он будет выглядеть примерно так:

mkdir workspace
cd workspace
git clone https://github.com/nhgrif/SQLConnect

Это очень просто... но здесь нет "основной" функции. Несмотря на это, терминал вполне удовлетворится выполнением этого скрипта, который создаст каталог "workspace" и загрузит в него мою библиотеку SQLConnect.

Файл игровой площадки выполняется почти так же, как и многие интерпретируемые языки. Вам не нужна функция main. Одиночные файлы .swift, запускаемые с помощью команды swift в терминале, выполняются точно так же. Они начинаются в верхней части файла и идут вниз.

person nhgrif    schedule 26.08.2015
comment
Все еще не убежден, его предположение - person sriram hegde; 26.08.2015
comment
ответ правильный, также проверьте документацию Apple Swift, если вы не уверены. Из тура по Swift: print(Hello, world!) .. в Swift эта строка кода представляет собой законченную программу. Вам не нужно импортировать отдельную библиотеку для таких функций, как ввод/вывод или обработка строк. Код, написанный в глобальной области видимости, используется как точка входа в программу, поэтому вам не нужна функция main(). - person Fred; 26.08.2015
comment
проигнорируйте мой предыдущий комментарий: насколько я понимаю, игровой площадке не нужна основная функция, она просто анализируется и выполняется от начала до конца. Но при создании консольного приложения вам нужно создать быстрый файл с именем main.swift, который действует как основная функция. вы можете добавить туда println(hello world). но когда вы создаете другой неосновной быстрый файл, вы получите выражения ошибок, не разрешенные на верхнем уровне, если вы добавите оператор. - person Fred; 26.08.2015