Как понимать «возврат» как направление параметра? - PullRequest
2 голосов
/ 26 октября 2011

В документе надстройки UML2.3, раздел 7.3.42 ParameterDirectionKind, есть описание для перечисления литеральных значений:

в / INOUT / выход / возврат

Легко понять "in" и "inout" с точки зрения реализации.

Например, в C ++ «in» может быть реализовано двумя способами:

foo( CString strParam )
bar( const CString& strParam )

«inout» также может быть реализован двумя способами: (ссылка и указатель)

foo( CString* pParam )
bar( CString& strParam)

Теперь перейдем к моему вопросу:

  1. Что означает «возвращение»? (Я говорю о направлении «возврата» для параметра, а не о типе возврата для операции / метода)

    Есть ли язык, поддерживающий это направление параметра? Как выглядит код.

    Если никакой язык не поддерживает его, как его использовать условно?

  2. В чем разница между "возврат" и "выход"?

  3. Любой код реализации для направления "out" параметра?

По моему мнению, всякий раз, когда мы говорим о параметре, вызывающая сторона должна вызывать эту функцию с аргументом, назначенным параметру. Это утверждение верно?

Затем, в зависимости от направления параметра, он может быть в / inout / out / return. Мой вопрос: что означает направление «возврат»? У OMG должна быть причина добавить этот тип в документ, который я не выяснил.

Из UML2.3 Надстройка 7.3.42

return: Указывает, что значения параметров передаются в качестве возвращаемых значений от поведенческого элемента обратно вызывающей стороне.

Заранее спасибо

1 Ответ

2 голосов
/ 26 октября 2011

в UML «возвращаемый параметр» - это то, что возвращается и может иметь только один. Думайте об этом с точки зрения нахождения внутри метода (а не с точки зрения реального языкового дизайна, каким вы его знаете). Возвращаемый параметр - это то, что объект передает тому, что его вызвало.

...