Форум: "Прочее";
Текущий архив: 2012.04.29;
Скачать: [xml.tar.bz2];
Внизи чего дельфи хоронят?.. Найти похожие ветки
← →
euru © (2011-12-22 15:00) [120]
> Андреевич (22.12.11 14:30) [112]
> она лучше пока не нужен i в теле цикла
> Компромисс © (22.12.11 14:32) [113]
> Если важно знать номер итерации, то do n time не подходит, конечно.
Номер итерации хранится в системной переменной, значение которой доступно внутри цикла и содержит номер текущей итерации (см. [118]).
← →
OW © (2011-12-22 15:05) [121]
> euru © (22.12.11 14:42)
это я понимаю, там через ECX loop идет скорее всего, иное трудно представить, если только искусственно что-то сделать.
А такой язык, что бы было можно
push 50;
> ZdelayTakChtobyAvtoShemaRabotalaHoroshoIBezGlukov;
mov EAX, 35
> ZdelayTakChtobyAvtoShemaRabotalaHoroshoIBezGlukov;
и результаты разные :)
>> насчет середины
неплохо, конечно.
Хочешь так, хочешь этак.
с другой стороны - много команд, дублирующих друг друга, позволит писать смешано и будет труба полная :)
По коду выше, под номером 4, где сплошь [] [] и индексы, индексы - вот это в глаза бросается, конечно. Как -то описательно если можно было бы изначально делать - может бы было привычно.
т.е.
Мне паскаль нравится. Если его расширяют новыми версиями - хорошо.
Пусть кто-то пишет как позволяют новые правила/синтаксис.
Сам пока подожду :)
← →
Kerk © (2011-12-22 15:05) [122]
> euru © (22.12.11 15:00) [120]
Так чем вариант из [108] хуже этого извращения с системными переменными? :)
← →
Компромисс © (2011-12-22 15:10) [123]
> Это уже шаг в сторону перла :)
Это не перл, но мне очень нравится :) Особенно если вот так:var obj:Object = new Object();
obj.firstName = "Vasya";
obj.lastName = "Pupkin";
for (var propertyName:String in obj){
trace(property + "=" + obj[propertyName]);
}
Такие шикарные Class Factory писать можно... Они, кстати, даже есть в стандарте.
Типа
var classFactory:IFactory = new ClassFactory(Label);
classFactory.properties = {text:"Vasya Pupkin", height:190}
← →
Компромисс © (2011-12-22 15:12) [124]
> Номер итерации хранится в системной переменной, значение
> которой доступно внутри цикла и содержит номер текущей итерации
> (см. [118]).
ИМХО, негоже использовать хакерские приемы. А ну как реализация изменится?
← →
euru © (2011-12-22 15:21) [125]
> Romkin © (22.12.11 14:36) [115]
> как насчет такой середины?
Это смотреть в сторону C# с LINQ.
← →
Anatoly Podgoretsky © (2011-12-22 15:24) [126]> Ega23 (22.12.2011 13:28:47) [107]
Данная клнструкция всего лишь вариация FOR, можно спокойно жить без нее и
жили
← →
Kerk © (2011-12-22 15:24) [127]
> Компромисс © (22.12.11 15:10) [123]
Нет, я про то, что синтаксис двух вариантов цикла очень похожий. Такие моменты имеют тенденцию ускользать от внимания и вести к неприятным багам. К тому же, человеку не знающему язык, вообще непонятно в чем разница между циклами, т.е. до естественности тут далеко.
← →
euru © (2011-12-22 15:47) [128]
> Kerk © (22.12.11 15:05) [122]
> Так чем вариант из [108] хуже этого извращения с системными переменными? :)
Я не говорил, что этот вариант хуже. Просто такого варианта нет в паскале, код которого "очень похож на английский текст" [76],и "даже неподготовленный может догадаться что там происходит" [76]. А именно для этого языка я привёл примеры из другого языка.
А вообще, хотя всю сознательную жизнь программировал на паскале и Delphi, а последние 9 лет на АВАРе, си-подобный синтаксис мне кажется более удобным (если им, конечно, пользоваться с умом).
← →
Компромисс © (2011-12-22 16:14) [129]
> Нет, я про то, что синтаксис двух вариантов цикла очень
> похожий. Такие моменты имеют тенденцию ускользать от внимания
> и вести к неприятным багам. К тому же, человеку не знающему
> язык, вообще непонятно в чем разница между циклами, т.е.
> до естественности тут далеко.
Да, согласен. Но не вводить же for index и for element...
← →
Ega23 © (2011-12-22 16:15) [130]
> си-подобный синтаксис мне кажется более удобным
Вот уж что-что, а синтаксис сравнивать, ИМХО, последнее дело.
* и & или ^ и @ - дело сугубо привычки. Регистрозависимость... Ну я и так всегда код выдерживаю в ключе регистрозависимости.
++ vs dec - да тоже ерунда. Вот скобочки писать для функции без параметров как-то напрягает. Но не особо. В Delphi тоже пустые скобки допускаются, это просто нас развратил Code Insight.
Возможность ++i и i++ - лично я никогда особых преимуществ не видел, ИМХО, только запутывание. А должно быть всё "пусть безобразно, но единообразно" (с).
← →
Ega23 © (2011-12-22 16:17) [131]И всё это нытьё по-поводу синтаксиса исключительно для тех, кто одним из них толком никогда не пользовался. Когда приходилось и на Delphi и на JS одновременно писать, то уже где-то через неделю при переключении окошек редактора в башке щёлкал триггер переключения синтаксиса.
← →
Компромисс © (2011-12-22 16:36) [132]
> Когда приходилось и на Delphi и на JS одновременно писать,
> то уже где-то через неделю при переключении окошек редактора
> в башке щёлкал триггер переключения синтаксиса.
Немного не так. Надо работать не меньше недели на одном, а потом переключиться на неделю на другой. Причем, чтоб языки были во многом похожи.
Вот тогда я реально начинал на java писать private var obj: Object вместо private Object obj, а вместо public String toString(){...} писал public function toString():String{...} :)
← →
Inovet © (2011-12-22 17:19) [133]> [130] Ega23 © (22.12.11 16:15)
> Возможность ++i и i++ - лично я никогда особых преимуществ
> не видел
Есть там нюансы - operator++() будет вызвана до или после, а в ней мало ли чего наворочено.
← →
Ega23 © (2011-12-22 17:46) [134]
> Есть там нюансы
да я в курсе нюансов. Я про преимущества.
← →
brother © (2011-12-22 20:14) [135]> [38] Dennis I. Komarov © (21.12.11 23:15)
я думал это прикол...
← →
jack128_ (2011-12-22 23:20) [136]
> Но вот как-то не сложилось у меня дружба с foreach, не
> знаю почему.
Я могу объяснить, почему в дельфе у меня не сложилось с for in .
Допустим я редакторе напишу:
"for"
Мне тут же генерируется шаблон
for I := 0 to List.Count - 1 do + объявление переменной I в секцию var. Мне только название коллекции вместо List нужно набрать.
Для for in мне нужно самому переменную объявлять, вспоминать, какой там конкретно тип в коллекции сидит, в общем вагон проблем созданных из ничего.
Для сравнения - шарп + resharper
Я набираю
"foreach"
генерируется заглушка:
foreach(var [item] in [Items])
{
[]
}
// квадратными скобками показаны плейсхолдеры, по которым можно табом перемещаться.
сначала фокус стоит на Items, причем выпадает popup со списком колекций. Выбираю например Orders + жму Tab, перехожу на item , тут название переменной _автоматом_ меняется на основании имени коллекции (в данном случае "order"), жму еще раз Tab поподаю в тело цикла.
Вывод то прост: IDE (не язык, а именно IDE) определяет сознание в таких мелких улучшениях синтаксиса.
Вот если бы в delphi ide была такая же поддержка for in, как VS для foreach, то я б только им и пользовался, ибо индекс нужен не часто. Но что имеем, то имеем.
← →
DVM © (2011-12-22 23:39) [137]
> Rouse_ © (22.12.11 11:14) [89]
>
> С включенным флагом почти весь VCL не соберется ибо выражения
> плана:
> if (SomeVariable <> nil) and (SomeVariable.SomeParams <>
> nil) then
> там рассованы по всему коду.
>
>
Меня всегда напрягали такие места. И обычно всегда я переписывал на 2 штуки IF. От греха.
← →
antonn © (2011-12-22 23:41) [138]не знаю кому как, а мне перебор по for дает больше уверенности в переборе именно по индексу, foreach до сих пор (5 лет с пхп) просто внутренне не дает уверенности в порядке перебора в той последовательности что они поступали в список :)
← →
jack128_ (2011-12-22 23:46) [139]
> а мне перебор по for дает больше уверенности в переборе
> именно по индексу, foreach до сих пор (5 лет с пхп) просто
> внутренне не дает уверенности в порядке перебора в той последовательности
> что они поступали в список :)
Это фобии.
Как сам класс коллекции реализовал GetEnumerator()/GetItem(Index: Integer) в таком порядке и будет перебор, никаких преимуществ у перебора по индексу тут нету.
← →
Игорь Шевченко © (2011-12-22 23:47) [140]
> foreach до сих пор (5 лет с пхп) просто внутренне не дает
> уверенности в порядке перебора в той последовательности
> что они поступали в список
И не должен
← →
DVM © (2011-12-22 23:51) [141]
> antonn © (22.12.11 23:41) [138]
> foreach до сих пор (5 лет с пхп) просто внутренне не дает
> уверенности в порядке перебора в той последовательности
> что они поступали в список :)
а for разве тебе переберет их в той последовательности что они поступали?
← →
antonn © (2011-12-22 23:59) [142]
> Это фобии.
>
наверное, но по индексу как-то спокойнее :)
← →
DiamondShark © (2011-12-23 00:02) [143]
> не знаю кому как, а мне перебор по for дает больше уверенности
> в переборе именно по индексу,
А зачем вообще нужен перебор по индексу? Я ещё понимаю, если перебор по значению ключевого атрибута. Но в 99.999% случаев индекс в коллекции не имеет никакого смыслового отношения к элементам коллекции.
> foreach до сих пор (5 лет с пхп) просто внутренне не дает
> уверенности в порядке перебора в той последовательности
> что они поступали в список :)
Создай TStringList, задай Sorted := true и твой любимый индекс не будет иметь никакого отношения к последовательности поступления.
Коллекция с гарантированным порядком элементов -- это более специализированный класс коллекций. Если твой код завязан на более специализированный клас, то он хуже генерализован и предъявляет более жёсткие требования к окружению. Что, в свою очередь, ухудшает переносимость, расширяемость и сопровождаемость.
← →
DiamondShark © (2011-12-23 00:05) [144]Удалено модератором
Примечание: оскорбление участников форума
← →
antonn © (2011-12-23 00:05) [145]путь и не нужен именно индекс в цикле, но при экспорте во всякие ексели для foreach() приходится заводить счетчик для номера строк.
но бывает и индекс нужен, например при пробеге цикла для двух списков с одинаковым содержимым
← →
DiamondShark © (2011-12-23 00:10) [146]
> заводить счетчик для номера строк.
Дежа вю такое дежа вю.
> при пробеге цикла для двух списков с одинаковым содержимым
как это?
← →
DVM © (2011-12-23 00:11) [147]
> DiamondShark © (23.12.11 00:05) [144]
Тебя послушать, так тут сплошные знахари и неучи собрались.
← →
antonn © (2011-12-23 00:16) [148]
> Дежа вю такое дежа вю.
вставка в ячейку через одну начиная с определенной строки. м?
> как это?
два индексированных списка с одинаковым кол-вом элементов, так точнее
← →
Anatoly Podgoretsky © (2011-12-23 00:31) [149]> antonn (23.12.2011 00:05:25) [145]
Второй список лишний
← →
antonn © (2011-12-23 00:41) [150]
> Anatoly Podgoretsky © (23.12.11 00:31) [149]
>
> > antonn (23.12.2011 00:05:25) [145]
>
> Второй список лишний
А в Эстонии тормозуха самая лучшая
← →
antonn © (2011-12-23 00:43) [151]Ах да, еще стоит подумать над ответом в [149], потому как два списка содержащих одни и теже значения вовсе не одно и тоже что один список с теми же значениями. В процессе работы с ними это может быть очень даже очевидно
← →
Kerk © (2011-12-23 00:52) [152]По теме всех этих ваших циклов
http://roman.yankovsky.me/?p=73
← →
DiamondShark © (2011-12-23 01:18) [153]
> Kerk © (23.12.11 00:52) [152]
У Свидетелей Иеговы тоже есть книжка, в которой находятся цитаты на все случаи жизни.
← →
Германн © (2011-12-23 02:14) [154]Удалено модератором
← →
Компромисс © (2011-12-23 10:59) [155]Из ссылки Kerk © (23.12.11 00:52) [152]
Составьте список работников удовлетворяющих хотя бы одному из следующих критериев.
1) Работник занимает должность техника и зарабатывает не менее 6 долларов в час.
...
Уже одни эти результаты указывают на возможность определения языка программирования на естественном уровне более понятного для новичков.
Странный мужик этот ваш "Л.А. Миллер".
SQL уже придуман много лет назад с его
1) select firstName, lastName
from employee
where post_id in (select id from posts where lower(name) like "*technic*")
and hourPayment >= 6
order by 1,2
← →
KilkennyCat © (2011-12-23 11:06) [156]Удалено модератором
← →
OW © (2011-12-23 11:23) [157]Удалено модератором
← →
Inovet © (2011-12-23 11:29) [158]Удалено модератором
← →
Inovet © (2011-12-23 11:30) [159]Удалено модератором
← →
Думкин © (2011-12-23 11:39) [160]Удалено модератором
Страницы: 1 2 3 4 5 6 7 вся ветка
Форум: "Прочее";
Текущий архив: 2012.04.29;
Скачать: [xml.tar.bz2];
Память: 0.81 MB
Время: 0.03 c