Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 694

/ вопрос открыт /

Доброго времени суток!

Столкнулся с необходимостью реализовать такую конструкцию:

function aaa( ... );
begin
bbb( ... );
end;

Или же

procedure aaa( ... );
begin
bbb( ... );
end;

Иначе говоря, мне нужна функция (процедура), у которой будет два имени-синонима :) То есть добиться результата можно будет и вызвав aaa, и вызвав bbb

Представленная контрукция такой результат даёт, но мне хочется узнать: есть ли более лаконичное решение? Что-то вроде "функций-синонимов", как я это дело назвал. Может я изобретаю очередно велосипед? )


Заранее спасибо за ответ

Andrew T Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Andrew T (статус: Посетитель)
Вопрос отправлен: 28 апреля 2009, 13:18
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Andrew T!
Подобного в языке нет. И даже не понимаю, зачем такое может быть надо. Но можно реализовать хитрым методом.

type 
  TMyfunc = function(...);
var
  bbb : TMyFunc;
 
//....
bbb := @aaa;
Но этот метод позволяет дублировать только функции на функции и процедуры на процедуры и только с одинаковыми сигнатурами. То есть функцию в процедуру переделать таким образом нельзя. Назовите цели - может и решение будет красивое:)

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 28 апреля 2009, 14:06
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 28 апреля 2009, 16:11; участников в обсуждении: 2.
Andrew T

Andrew T (статус: Посетитель), 28 апреля 2009, 14:23 [#1]:

Цель такая: в Delphi 2009 наконец-то появилась поддержка Юникода, поэтому теперь можно создавать переменные с именами на различных языках + функции/процедуры, тоже на разных языках, а не только на english-е

Сейчас разбираю коллекцию unit-ов, созданных ранее, и решил дать функциям "русские" имена: вдобавок к GetOSType() добавить ТипСистемы(); и т.д

Мне как человеку из России будет проще взять из unit-а "родное" название, а англичанину - GetOSType, если вдруг он захочет использовать мои функции в своих проектах )))
Вадим К

Вадим К (статус: Академик), 28 апреля 2009, 14:58 [#2]:

лучше не делать этого. Лучше не делать.
- даром потраченное время
- для немцев, например, как программист Вы будете ненужны
- на все языки не напасёшся
- переключаться постоянно - это ужас
- некоторые имена, содержащие буквы, которые похожи на латинские, сложно отличить - это самая большая проблема. Прийдется создавать в разных языках.
И, учите английский. Сколько пространаства для размышлений открывается...
Галочка "подтверждения прочтения" - вселенское зло.
Andrew T

Andrew T (статус: Посетитель), 28 апреля 2009, 15:37 [#3]:

Я был готов к критике. Само собой данные пляски с бубнами пригодятся не всем, не везде, не всегда.

Тут как с национальными доменами (IDN) - люди возмущаются, но процесс продвигается :)

PS: английский - хорош, но он не панацея :( Не раз задумывался, как назвать новую функцию, чтобы и запомнить было легко, и набирать, и с другими похожими не перепутать.
Вадим К

Вадим К (статус: Академик), 28 апреля 2009, 16:11 [#4]:

А что бы помнить имена, надо не функциями мыслить. А объектами и пространствами имен. А то свалят в одну стопку десять сотен функций и потом жалуются.
Хотя с русскоязычными будет таже проблема - для одного понятно сокращения, а для другого - темный лес.
Национальные домены - не знаю, я вот даже не представляю, как я буду на китайские сайты ходить (как собственно и смотреть код с китайскими переменными или арабскими. А с ними тут ещё больше засада, там ведь слова пишуться справа на лево... а редакторы это так любят....).
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:01
Выполнено за 0.04 сек.