Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1325448187
Cobalt
2012-01-02 00:03
2012.04.29
Windows.GetScrollInfo


15-1324540812
Фокс Йожин
2011-12-22 12:00
2012.04.29
Глюки IE9 с фреймами


2-1325752586
Anthony
2012-01-05 12:36
2012.04.29
Вопрос о передаче фокуса элементу


15-1324623216
Faceless
2011-12-23 10:53
2012.04.29
информация об используемых библиотеках


15-1324758605
Юрий
2011-12-25 00:30
2012.04.29
С днем рождения ! 25 декабря 2011 воскресенье





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский