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