加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

类型的含义Set = Int => Scala中的布尔值

发布时间:2020-12-16 19:14:49 所属栏目:安全 来源:网络整理
导读:我不明白为什么以这种方式定义的Set会产生这些结果. 我的理解是Set只是一个接受int和返回布尔值的函数. 有人可以解释我为什么我用set得到这个结果? 我认为这是在Scala中表达函数的一种简短方法,但我是这种语言的新手,我不明白它是如何工作的. object sets {
我不明白为什么以这种方式定义的Set会产生这些结果.

我的理解是Set只是一个接受int和返回布尔值的函数.

有人可以解释我为什么我用set得到这个结果?

我认为这是在Scala中表达函数的一种简短方法,但我是这种语言的新手,我不明白它是如何工作的.

object sets {
  type Set = Int => Boolean

    var a=Set(3)                              //> a  : scala.collection.immutable.Set[Int] = Set(3)
    a(2)                                      //> res0: Boolean = false
    a(3)                                      //> res1: Boolean = true
    a(1)                                      //> res2: Boolean = false
}

解决方法

您在类型Set = Int =>中定义的类型布尔值和你在var a = Set(3)中创建的对象实际上没有相互连接.即便如此:

scala> type Set = String
defined type alias Set

scala> val a = Set(3)
a: scala.collection.immutable.Set[Int] = Set(3)

当您调用Set(3)时,您可以在object Set上调用apply方法.如果您添加新关键字,则会考虑您的类型别名:

scala> val b = new Set()
b: String = ""

a(2),a(3),a(1)工作因为Set [A]实际上确实实现了A =>布尔函数trait和apply方法相当于包含:http://www.scala-lang.org/api/2.10.3/index.html#scala.collection.immutable.Set

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读