gpt4 book ai didi

scala - 在 Scala 中使用幻像类型标记原始类型

转载 作者:行者123 更新时间:2023-12-04 17:40:01 26 4
gpt4 key购买 nike

在 Scala 中,我可以使用幻像类型的概念(如 here 所述)来标记类型并在运行时删除此信息。我想知道是否可以用幻影类型标记原始类型而不将它们装箱。

一个例子可能是一个函数,它只让 Int 是素数时才通过。签名可能类似于以下内容:

def filterPrime(i: Int): Option[Int with IsPrime]

该函数返回值 Some(i)如果 i是素数或 None别的。

所陈述的想法是否可以在 Scala 中实现而不用装箱原始整数?

最佳答案

以下对我有用:

trait IsPrime
val x = 5.asInstanceOf[Int with IsPrime]
val y:Int = x

val z:Int with IsPrime = 6 /* this line causes a compile error
which is what you want */

关于scala - 在 Scala 中使用幻像类型标记原始类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6358651/

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