微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Nim 中使用默认泛型类型?

如何解决如何在 Nim 中使用默认泛型类型?

更新:Nim 没有泛型类型的认值(请参阅答案)。


为什么 Nim 不使用泛型类型的认值?

我希望能够拥有不同的 const 版本,但我不想在不需要时指定泛型类型参数 Company 而只使用 {{1} }.

但是这样不行,下面的代码不能编译,为什么?那么泛型类型的认值有什么意义呢?

Company[void]()

解决方法

代码无法编译,因为 Nim 没有泛型类型的默认值这个之前)。

你可以做的是像这样为你的默认类型设置别名:

type
  Company*[T] = object
    name*: string
    data*: T
  VoidCompany = Company[void]

echo VoidCompany()
,

Nim 是一种静态类型语言,这意味着在某些时候它需要弄清楚你的参数的类型是什么。你可以在编译时做,也可以在运行时延迟,但这不会改变编译器需要知道所有东西的类型才能正常工作的事实,默认参数只决定它的值而不是类型

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。