gpt4 book ai didi

function - 当参数是函数时,如何在 UML 类图中表示参数的类型?

转载 作者:行者123 更新时间:2023-12-04 07:41:15 24 4
gpt4 key购买 nike

例如,一个类有一个方法 compute() (为清楚起见,使用 Python 语法并删除 self 参数):

def compute(computation_fn):
return computation_fn(5)
让我们假设 computation_fn将 int 映射到 int。在 UML 类图中,我应该写这样的东西吗?
+ compute(computation_fn: (num: int): int): int
如果这已经在某处得到了回答,只需放一个链接!我一直在努力寻找答案。

最佳答案

UML 只有基本类型 Integer , Boolean , String , UnlimitedNatural , 和 Real .
您还可以使用您在模型中定义为类型的任何类。对此,你可以很好地定义一个class that corresponds to a kind of functions ,例如 FunctionOfIntToInt .在任何使用可调用对象的设计中,这都是常见的事情。
UML 还可以通过配置文件中的其他类型来丰富。很多时候,你会看到你最喜欢的语言类型。这假定使用特定于语言的配置文件。但通常它是固定类型名称(例如 DateUInt8 ,...)。你可以想象一种叫做 (int):int 的类型。 ,但这对于已经使用 : 的 UML 语法来说是模棱两可的。 .
不幸的是,UML 的类型系统中没有任何东西可以表示具有任意数量的灵活类型参数的函数。所以这完全取决于你需要如何兼容 UML:

  • Python 程序员会理解您在图中使用的任何 Python 类型,包括函数类型,即使它不是“纯”UML。所以这将是务实的方法。尽管如此,我还是建议更换 :对于返回类型 ->避免词汇混淆
  • 但是,如果您必须按照本书进行操作,配置文件不允许使用允许在现有 UML 机制之上组合类型的语法扩展。有一个解决方法。您可以使用 UML 模板类来表示函数。第一个参数是返回类型,其余的模板参数是参数类型。然后您将使用 UML 的 native template binding语法来实例化模板以用于打字目的。但我同意,它更笨拙(即使对于 C++ std::function template 的任何用户来说似乎都很熟悉。
  • 关于function - 当参数是函数时,如何在 UML 类图中表示参数的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67453102/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com