如何解决如何在 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 举报,一经查实,本站将立刻删除。