- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
namespace ExtensionMethods
{
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
}
....
string s = "Hello Extension Methods";
int i = s.WordCount();
В общем-то.
Ada и PHP, наверное, самые любимые. xD
А ещё сколько языков в Си транслируется, который может выполняться под JVM...
А кто передатчик?
http://xrunhprof.wordpress.com/2007/11/18/language-benchmark-java-vs-python/
Дело даже не в результатах. Вообще эквивалентности никакой.
>def readword(st, bufferSize=4096):
С вводом сложнее: в примере в случае python использовалась кастомная функция разбиения на слова. java.util.Scanner работает на регулярных выражениях, т.е. требует гораздо больше вычислений. Переписывать код python на java у меня желания нет.
В итоге выяснилось, что автор бенчмарка просто недостаточно компетентен для проведения бенчмарков.
http://shootout.alioth.debian.org/
Разные люди пишут решение стандартных задач на любимом языке, самые быстрые решения выбираются в качестве эталонной реализации для конкретного языка, и уже эти эталонные реализации сравниваются.
Идите в школу, мальчик, MSDN вам не нужен.
Если бы я намеренно начал открывать для себя мсдн, то весьма скоро раздел шарпа на этом ресурсе стал вторым после пхп.
Или это априорное утверждение, что MSDN полон говна?
http://leotsarev.moikrug.ru/
Тады ж неудобна буит писать в их любимам linq флует-интерфейс.
http://stackoverflow.com/users/41956/abatishchev
хех, предсказуемо
Вот, глянь. Методов дохрена, в стандартной документации иерархия игнорируется напрочь. Туда ещё хоть полшишечки лишних сахарных методов - и класс превратится в свалку.
ты еще в функциональные языки загляни. может соратников найдешь - у них тоже такое специальное и своеобразное отношение к синктаксическим подсластителям.
как по мне ... ну че тут говорить. мой любимый язык Перл и этим все сказано. все что это экономит время, без потери производительности, как по мне чистый плюс.
На светлую сторону склонять я пытаюсь, но тёмной стороной силы всё пропитано здесь.
а диавол уже искушает христа.
да и в темноте просто веселее.
А все, что без особой надобности усложняет язык и понимание кода. Так что становится неясно - принадлежит ли этот метод классу или это extesion откуда-то из недр проекта.
Тоже хорошо?
>чистый плюс.
Два плюса. В тред приглашается Тарас
Сам метод нормальный, но подозреваю, что код, использующий этод метод говнище то ещё.
А если взглянуть на список разделителей слов, то он явно не полный.
>ЧёЯДелаюНеТак?
может много троллишь?
>можна
>толька
>платить
Значение
1 Отдавать деньги или другие ценности в возмещение покупки, услуги, совершённого нарушения.
(люблю, когда мне платят платиной)
2 Перен. возмещать, воздавать, совершать ответное действие
(не люблю)
3 Платить натурой.
(тоже не плохо от лиц противоположного пола)
Это справочная информация, а новичку полезней гайд читать(книжку) о том, как правильно реализовывать тот или иной сценарий.
Искать говнокод в учебных примерах и на геймдеве - "I am a wimp" сложность.
И мы вызываем метод
Мне неясно в чем профит? О каких тоннах кода речь?
Выглядит приятнее обоих методов, но в этом случае нет автодополнения, специфического для данного интерфейса, и списка методов, которые есть в случае "bar.*".
c чего ты взял?
import static ...ExtClass.* //импортит тебе все статик методы
http://www.op4j.org/
select(sales, having(on(Sale.class).getValue(), greaterThan(50000)))
getValue() - каждый раз выдает разные значения из списка.
Ну и структура проекта (для общего развития).
Как говорит автор: если можете - юзайте Scalу.
где у программера кнопка "счастье"?
массаж простаты.
если найти программиста-женщину
то можно обрадоваться умению считать лишь до двух
начиная и с живота тоже
Кстати о вызовах, представь как будет смотрется какой-то хитрый linq запрос через методы без этого сахара.
Расскажу страшную тайну: Шарп изначально скраден с Жабы, чуть менее чем полностью.
>представь как будет смотрется какой-то хитрый linq запрос
Вот! Собственно о чем я и говорил позавчера:
>http://www.govnokod.ru/8652#comment122393
Выходит, что MS добавила в язык extensionы ради всего-то одной новой технологии - LINQ, и частного случая - флуент-интерфейса.
И что тут такого? Все у всех все тырят, и жаба тут тоже не исключение.
>Выходит, что MS добавила в язык extensionы ради всего-то одной новой технологии - LINQ, и частного случая - флуент-интерфейса.
Зато очень полезная и удобная технология. Мне кажется, что оно того стоило.
Так вот безо всяких флуентов можно было писать подобный код, причем даже гибче.
Нет ограничений - метод возвращает this, нет ограничений на порядок: Form2.Style=.StyleНо и в бейсике оно довольно убого, а вот в языках с хорошими препроцессорами или макросами можно творить чудеса не захламляя язык ненужными дерьмом.
Интересней было бы послушать Тараса.
>Clojure есть макрос doto:
как я и сказал в спойлере: макросы - рулят.
Сложно сравнивать макросы языков с динамической и статической типизацией.
Немерловые макры не менее круты, но их запись несколько сложнее (более громоздкая) именно из-за статической типизации.
Повторю.
Насколько мне известно, в макрах Немерла нельзя так писать. Но зачем?
Вообще, в Nemerle2 макросистема будет кардинально переработана. Авторы обещают блэкджек и прочее.
А ещё немерлисты на рсдн писали, что готовы помочь скалистам с их макросистемой.
Интересней было бы послушать Тараса.
тарас подтвердит: хорошо сосет
Я даже один раз нарвался на баг, когда with перекрыл внутренним именем внешнее. Но такие вещи надо на уровне компилятора пресекать или хотя бы предупреждение выдавать.
2)Анонимные объекты на основе with использовал когда-нибудь?
2. Да, и это шикарно.
with TBitmap.Create do...
что хуже?
у хохлов даже гумна своего нет, приходится пиздить у кацапов
Мои поздравления :D
http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/statements.html#with
5 баллов :D
В Clojure есть макрос doto:
КГ/АМ
видны.
автору кода книги в оуки и пояснить где такое нужно юзать.