Any Nim中的任何、无和单位

Any Nim中的任何、无和单位,any,nim-lang,Any,Nim Lang,我在手册中找不到任何具体信息。 有人能澄清Nim中如何反映ANY、NONE和type单位吗 简短定义- 单位类型是只允许一个值的类型(因此不能保存任何信息)。与单元类型关联的载体(基础集)可以是任何单体集。任何两个这样的集合之间都是同构的,因此通常只讨论单位类型而忽略其值的细节。人们还可以将单位类型视为0元组的类型,即无类型的乘积 任何— 类型ANY也称为ALL或Top,是通用集。(所有可能的值) 无-空集 谢谢大家! 你的问题似乎是关于集合的。我们来看看, let emptySet: set[

我在手册中找不到任何具体信息。 有人能澄清Nim中如何反映ANY、NONE和type单位吗

简短定义- 单位类型是只允许一个值的类型(因此不能保存任何信息)。与单元类型关联的载体(基础集)可以是任何单体集。任何两个这样的集合之间都是同构的,因此通常只讨论单位类型而忽略其值的细节。人们还可以将单位类型视为0元组的类型,即无类型的乘积

任何— 类型ANY也称为ALL或Top,是通用集。(所有可能的值)

无-空集


谢谢大家!

你的问题似乎是关于集合的。我们来看看,

let emptySet: set[int8] = {}
这是类型为
int8
的空集。空集的
{}
文本隐式转换为任何实际的
类型

let singletonSet = {1'i8}
这是一个仅包含一个值的集合(如果我理解正确,则为单位类型)。现在可以从集合中单个值的类型自动推断集合的类型

let completeSet = {low(int8) .. high(int8)}
此集合保存所有可能的
int8

内置的
集合
类型实现为位向量,因此只能用于只能保存一小部分可能值的值类型(对于
int8
,位向量已经是256位长)。除了
int8
,它通常用于
char
和枚举类型


然后是可以容纳较大类型的
HashSet
。但是,如果您构造一个包含所有可能值的
哈希集,内存消耗可能会非常巨大。

Nim不是函数式语言,也从来没有声称自己是函数式语言。没有这些类型的等价物,而且解决方案更像C++所采用的路径。
有一个空位,它是最接近单位的。Any类型不存在,但存在未类型化的
指针
。但该类型中不包含任何类型信息,因此您需要知道可以将其强制转换为什么。如果没有,或者我从scala知道的没有,你也必须使用
void
。但是在这里你可以添加pragma。

你能澄清你所说的任何、无(可能是
nil
)和输入单位是什么意思吗?您是否已阅读标签的说明
any
?这似乎与你的问题无关。为了得到正确的答案,你应该描述你想解决的问题。