如何理解“回归”作为参数方向?

发布于 2024-12-12 11:30:38 字数 872 浏览 1 评论 0原文

在UML2.3上层结构文档中,第7.3.42节ParameterDirectionKind中,有一个关于文字值枚举的描述:

in/inout/out/return

从实现角度来看,“in”和“inout”很容易理解。

例如,在 C++ 中,“in”可以通过两种方式实现:

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

“inout”也可以通过两种方式实现:(引用和指针)

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

现在来回答我的问题:

  1. 什么是“归来”是什么意思? (我说的是参数的“返回”方向,而不是操作/方法的返回类型)

    有没有语言支持这个参数方向?代码是什么样的。

    如果没有语言支持,常规如何使用?

  2. “返回”和“输出”有什么区别?

  3. 有参数“out”方向的实现代码吗?

在我看来,每当我们谈论参数时,都必须有一个调用者调用此函数,并将参数分配给该参数。这个说法正确吗?

然后根据参数的方向,它可能是in/inout/out/return。我的问题是:“返回”方向是什么意思? OMG 将这种类型放入文档中一定有我不明白的原因。

来自 UML2.3 Superstruction 7.3.42

return:表示参数值作为返回值从行为元素传递回调用者。

先感谢您

In UML2.3 superstructure document, section 7.3.42 ParameterDirectionKind, there is a Description for the enumeration of the literal values:

in/inout/out/return

It is easy to understand "in" and "inout" from implementation perspective.

In C++ for example, "in" can be implemented in two ways:

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

"inout" can be also implemented in two ways: (reference & pointer)

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

Now comes to my question:

  1. What does "return" mean? (I'm talking about "return" direction for a parameter, not return type for an operation/method)

    Are there any language support this direction of parameter? What is the code looks like.

    If no language support it, how to use it conventionally?

  2. What is the difference between "return" and "out"?

  3. Any implementation code for "out" direction of a parameter?

In my opinion, whenever we are talking about a parameter, there must be a caller call this function with an argument assigned to the parameter. Is this statement correct?

Then based on the parameter's direction, it could be in/inout/out/return. My question is: what does "return" direction mean? There must be a reason for the OMG to put this type in the document that I did not figure out.

From UML2.3 Superstructure 7.3.42

return:Indicates that parameter values are passed as return values from a behavioral element back to the caller.

Thank you in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

捂风挽笑 2024-12-19 11:30:38

在UML中,“返回参数”是返回的内容,并且只能有一个。从方法内部的角度来思考它(而不是从您所知道的现实生活语言设计的角度)。返回参数是实体传递给调用它的参数。

in UML, the "return parameter" is what is returned and can have only one. Think of it from the perspective of being inside the method (not from the perspective of real life language design as you know it). The return parameter is what the entity passes to what invoked it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文