Форум: "Начинающим";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];
ВнизСответствие типов методом исследования Найти похожие ветки
← →
Tifon © (2007-01-03 17:17) [0]Реально ли это сделать именно в Делфи 7(6) или паскале, помогит плз. Нигде не могу найти ответ на этот вопрос.
← →
umbra © (2007-01-03 17:46) [1]
> Нигде не могу найти ответ на этот вопрос.
>
не заметил ни одного вопросительного знака :)
← →
Palladin © (2007-01-03 17:47) [2]Нигде не могу найти вопрос на этот ответ.
← →
Tifon © (2007-01-03 17:49) [3]Извиняйте не совсем правильно выразился, просто я уже в отчаянии.
Можноли в делфи создать алгоритм который будет проверять соответствуют два типа или нет? и как это можно описать теоретически, даже если не возможно практически?
← →
umbra © (2007-01-03 18:02) [4]все уже готово, делфи сам проверяет, соответствуют два типа или нет. Главное - их объявить
← →
Palladin © (2007-01-03 18:04) [5]Variant + F1
если, конечно, я нашел вопрос на этот ответ...
← →
Tifon © (2007-01-03 18:24) [6]понятно, а теоретически этот вопрос объясните пожалуйста, как обрабатывает это компилятор и как можно определить вручнуют соответствуют ли типы друг другу?
← →
Palladin © (2007-01-03 18:57) [7]Задавай вопросы конкретней или опиши задачу. Твои вопросы выглядят как "Объясните как человек ходит и как можно делать это в ручную?"
← →
Tifon © (2007-01-04 15:35) [8]To Palladin
Понял, извиняйте за оплошность, больше неповториться.
← →
ors_archangel © (2007-01-04 16:38) [9]
> Реально ли это сделать именно в Делфи…
> …понятно, а теоретически этот вопрос объясните пожалуйста,
> как обрабатывает это компилятор и как можно определить
> вручнуют соответствуют ли типы друг другу?
1
В общем случае типы в Делфи использует только компилятор, они далеко не всегда существуют как доступные сущности в run-time, например, нет оператора typeof или любых других, которые могли бы принимать, передавать, и собственно, оперировать типами как таковыми. Мало что дающее исключение здесь составляют т.н. class-reference переменные, которые позволяют нам ссылаться не на экземпляр класса, а на сам класс, как таковой. Т.о. в общем случае только компилятор имеет возмоность опеределять, "соответствуют" ли типы друг другу, подозреваю, что под соответсвием имелась в виду совместимость, тогда совместимость определяется оч просто: любые не объектные и не классовые типы не совместимы (но их псевдонимы могут быть совместимы, если обратное не указано явно с помощью ключевого слова type), типы объектов/классов имеют совместимость, если они имеют общего предка, что всегда верно в случае с классами, но не всегда в случае с паскалевскими объектами. Из всего этого следует, например, идиотский вывод, что любые записи, даже содержащие, например по одному integer-полю никогда не могут быть совместимы в принципе. Существует огромное множество исключений, связанных в том числе с т.н. расширенным синтаксисом Паскаля, так и, например, с модификаторами var,in,out, которые требуют "большей" совместимости, если так можно выразиться
2
Только в некоторых случаях с классами, или, если ты сделаешь собственный RTTI или… возможно достичь [6] - но, как я понял, это не то, чего ты хочешь, потому что в данном случае мы не используем средства языка, а практически используем ЯП, чтобы обеспечить функциональность, которую ЯП концептуально не имеет, следовательно код будет скорее всего ужасный, нудный, малоэффективный и совершенно не наглядный (все признаки того, что для решения задачи выбран не подходящий язык)
3
Совершенно не понимаю связь между "Сответствие типов методом исследования" и "соответствуют ли типы друг другу" - разве не разные вещи?
ИМХО первое суть что-то философсое, второе же - чисто техническое
← →
Tifon © (2007-01-04 17:14) [10]to ors_archangel
Спасибо тебе за ответ, наверно ты единственный кто понял мой неправильно заданный вопрос.
А дело в том что, у меня друг учиться в универе на экономиста и им такое задали, ну он и попросил меня узнать что-нибудь по этому, а вопрос просто звучал так "Соответствие типов методом исследования", и он ничего не понял и я тоже, поэтому еще раз спасибо и простите за такую эхинею.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.045 c