↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Ластро
1 июня 2017
Aa Aa
#прогерское #вопрос

Что-то не гуглится, как на джаве из метода вернуть список чего-нибудь, например интов? Какой должен быть тип у метода. Где это нормально можно почитать?

Допустим мне нужна банальная функция копирующая список... куда уж проще, как её оформить?
1 июня 2017
32 комментария
Ластро
Не смешно, это я и так могу, мой вопрос, что в тип написать, чтобы оно не ругалось...
Ластро
Так, ладно, вроде получилось... но вот теперь вопрос, какого чёрта в коллекции нельзя складывать обычные инты O.o ??? Это что за нахер?
Al Lastor
А как получилось?
Ластро
public static List <Integer> primesToN (int num) {
List<Integer> list = new ArrayList<> ();
for (int i = 1; i <= num; i++) {
if (primeTest(i)) {
list.add(i);
}
}
return list;
}
Ластро
Вот такой вот хеллоу ворлд :)
Ластро
Для сравнения, эта же фигня на хаскеле :))

isPrime x = all (\i -> x`mod`i /= 0) [2..x-1]
primesToN n = [x | x <- [1..n], isPrime x]
ты обманываешь
в джаве есть и форич, и генераторы, и мап-редус, и всё такое
Ластро
Mikie, может и есть, но я до них ещё не добрался :)
Ластро
Mikie, кроме того, я не утверждал, что знаю её в совершенстве, вот сижу разбираюсь :)
как доберешься, так и будешь делать _корректные_ сравнения
(иные просто не_нужны)
Ластро
Mikie, может я ещё не постиг дзен, но пока что джава вызывает у меня ощущение слишком многословного языка...
Mikie
Наверное, потому что после Джавы Скала свалится приятным бонусом?
Ластро
Угу, а ещё js :) ну в теории...
Kotlin
BufferOverflow Онлайн
>какого чёрта в коллекции нельзя складывать обычные инты O.o ???
O_O
Джава суровый язык )))
Ластро
Я проникся :)
Вязаная варежка
джава от скалы отличается капитально
в случае аластора, может и свалится, потому что он уже знает монады, но всё равно не сразу, я бы сказал, не автоматически

js - ну хз, тоже не сказал бы, я не гуру в обоих, но они мне кажутся всё-таки довольно разными

Администратор
палишься
BufferOverflow Онлайн
Mikie
JS куда хуже Джавы. Не то, чтобы я так хорошо знал джаву, но JS явно хуже. Да и с webassembly нафиг будет не нужен )
"хуже"
я вот табуировал в своей речи связку "язык А хуже чем Б"
Чего и всем советую.
BufferOverflow Онлайн
Mikie
Java хотя бы подходит для выполняемых им задач. А на JS кодят от безысходности )
это не правда
Это всё равно, что сказать, что джава получила свою популярность от безысходности: мобильники, серверы, кофемолки - везде была джава. И не поспоришь.
node.js написали тоже от безысходности? Предпочитают не париться с транспиляторами и выбирают plain js очень многие.
Есть в js проблемы, которые многим надоели, но почему-то от самого js никто не спешит отказываться полностью.
Ну, кроме тех неразумных, что подпрыгивают на месте и ругают php|js|whatever they assumed not ТРУЪ.
BufferOverflow Онлайн
Mikie
Сейчас куда ни плюнь - найдёшь альтернативу джаве. JS альтернатив пока нет (webassembly только растёт), есть только монструозные библиотеки-расширения, которые ни фига не удобны. Всё-таки JS убог и примитивен, и большое сложное приложение на нём написать крайне сложно - хотя бы потому, что нормального ООП в нём нет - прототипы ужасны. Есть, конечно, монструозные библиотеки, которые здорово помогают в этом плане - ExtJS к примеру. Но они так или иначе не являются родными для JS, что затрудняет разработку. И так далее.
Факт в том, что JS, изначально созданный как примитивный язык для исполнения кода на стороне браузера, сейчас выполняет задачи, на которые при разработке рассчитан не был.
BufferOverflow

Es6 хотя бы с babel
Al Lastor
>Так, ладно, вроде получилось... но вот теперь вопрос, какого чёрта в коллекции нельзя складывать обычные инты O.o ??? Это что за нахер?

примитивы действительно не могут участвовать в дженериках
Но ты можешь объявить Collection<Interger> и кидать туда int-ы

Почитай про автобоксинг
А, ты разобрался уже
А чо не решето или это poc
Ластро
Program No 6, решето Эратосфена хорошая штука, но мне было влом... Разобраться с списками было важнее :)
BufferOverflow Онлайн
Program No 6
В любом случае, я жду не дождусь нормального webassembly )
Сколько ни развивай JS, а все ограничения не обойти. Хотя бы ограничение в скорости выполнения - как ни крути, а до нативного кода ему никогда не добраться.
Жалко, что только С/С++. Я видел обещание, что дойдёт и до C#, но я это как-то слабо представляю. Хотя .Net core ещё куда ни шло )

>примитивы действительно не могут участвовать в дженериках
Ужесть )
Ластро
BufferOverflow, Ужесть )
Угу, я бы не догадался. Кстати, кто знает, а почему так сделано?
BufferOverflow Онлайн
Al Lastor
Рискну предположить, дело в том, что эти типы - значимые, в то время как в Java в генериках такое невозможно в силу каких-то причин. Например, из-за невозможности привести к наибазовейшему Object. Слышал, что в ранних версиях джавы нельзя было Object x = (int)y; выполнить, т. к. y - значимый тип. В C# такое возможно с рождения )
typescript спасет всех
или не спасет
BufferOverflow Онлайн
Mikie
Typescript - штука хорошая. Как JS, только с человеческим лицом )
Но не ко времени он вышел. На пять лет раньше - был бы востребован. И, возможно, даже поддерживался бы браузерами нативно. А сейчас, когда большая четвёрка браузеров движется к wasm, быть ему не у дел. Ну и опять-таки, он наследует все минусы js кроме отсутствия ООП.
ПОИСК
ФАНФИКОВ











Закрыть
Закрыть
Закрыть