Почему в некоторых языках функции могут быть вне классов, а в других нет?
Например, сейчас я только начал изучать Kotlin, и вижу, что функции могут существовать сами по себе, а вот в Java, я знаю, там функции только внутри классов. Это просто такая особенность языка ? Или с чем-то это связано ? Почему в некоторых так, а в других так ? То есть стоит ли использовать такие функции, которые вне классов или лучше определять их внутри ?
В Java вообще нет функций, только методы. Методы по определению не могут быть вне классов. А сделано так потому, что Java проектировалась как язык принуждающий писать в ООП.
А сделано так потому, что Java проектировалась как язык принуждающий писать в ООП.
.... это и прочая и многословность в Java связана с тем, что ее придумали для написания огромного количества ответственных бизнес-приложений, для которых не хватало высококвалифицированных программистов.
Подобный дополнительный принудительный контроль, по задумке авторов Java, позволял начать применять менее квалифицированных с меньшими рисками по косякам.
в котлине тоже самое что и в джаве, по тем же правилам, просто сам котлин может генерировать "скрытый" объект которому принадлежит метод, имитируя "независимую" функцию.
В джава кстати тоже есть независимые функции
⚡ Kotobotov ⚡, по-моему она внутри класса. То есть где-то вверху находится надпись class{ и она после фигурной скобочки и до последней фигурной скобочки. Этот скрытый класс он же вроде внутри какого-то класса со всеми потрохами нет?
ApeCoder, да она внутри класса, но по синтаксису, ты описываешь только функцию, никакого класса не создавая, он создается автоматически.
в стиле :
а:Инт -> а + 1