|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Корректна ли такая проверка? Код: pascal 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 05:17 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
antox, думаешь у тебя проц взорвется, если ты сам скомпилируешь и проверишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 06:57 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
Не, я проверил и оно работает, но может есть какие-то более популярные конструкции :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 08:33 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
antox, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 08:48 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
LocksmithPC antox, Код: pascal 1.
Т.е. если не записать nil и вообще ничего не записать, то в fFunction может оказаться что-то другое? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 08:53 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
antox, если отключить оптимизацию и поставить бряк на try, то в Watch List`е видно, что @fFunction всегда nil. Но в писании сказано: "Всегда инициализируй переменные [в конструкторе]!" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 09:04 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
LocksmithPC, Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 09:38 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
antox Корректна ли такая проверка? Код: pascal 1. 2.
antox Т.е. если не записать nil и вообще ничего не записать, то в fFunction может оказаться что-то другое? LocksmithPC Код: pascal 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2022, 14:26 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
_Vasilisk_, как-то так ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2022, 09:00 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
Мне конструкция @funcname <> nil кажется неестественной. Если есть переменная, как указатель на нее м.б. nil? Нелогично. Понятно, что это такое условие в языке, чтобы отличить взятие адреса от вызова, но выглядит оно не очень ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2022, 10:54 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, "@" & "Addr" это с TP 5.0 тянется, ЕМНИП. Или еще с какой древней версии. А может с рождения. "Addr(fFunction)" дает ту же конструкцию, к слову ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 06:36 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
LocksmithPC Fr0sT-Brutal, "@" & "Addr" это с TP 5.0 тянется, ЕМНИП. Или еще с какой древней версии. А может с рождения. "Addr(fFunction)" дает ту же конструкцию, к слову Ну Addr еще более устаревшая конструкция, но в этом случае она как-то чуть более логична. И все равно Assigned намного лучше ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 10:36 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, если в данном случае они все генерят одинаковый asm код, то лучше она только тем, что в будущем могут отказаться от "@" & "Addr", если мы доживем до этого :) Надо смотреть какой код будет при операции с классами: if @class <> nil then & if Addr(class) <> nil then & if Assigned(class) then, но мне лениво :) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 10:53 |
|
Процедурный тип - наличие функции
|
|||
---|---|---|---|
#18+
Да по времени и коду вряд ли что-то будет различаться, просто Assigned более естественно выглядит и воспринимается. "Присвоена ли переменная", без всяческих адресов и указателей ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 11:56 |
|
|
Start [/forum/topic.php?fid=58&tid=2036608]: |
0ms |
get settings: |
30ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
92ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
666ms |
get tp. blocked users: |
2ms |
others: | 191ms |
total: | 1019ms |
0 / 0 |