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

在Scala中,为什么Array(“1”)“-3”输出Array [Any] = Array(1,

发布时间:2020-12-16 19:20:57 所属栏目:安全 来源:网络整理
导读:为什么在 Scala 2.12.6中有数组(“1”)“-3”输出res1:数组[Any] =数组(1,–,3)? 如何获得结果数组(“1”,“ – 3”)? 解决方法 是二元运算符(也称为方法),用于连接两个集合.eg.数组或列表. 如果第一个操作数是数组,则结果默认为Array. 如果第一个操作数
为什么在 Scala 2.12.6中有数组(“1”)“-3”输出res1:数组[Any] =数组(1,–,3)?

如何获得结果数组(“1”,“ – 3”)?

解决方法

是二元运算符(也称为方法),用于连接两个集合.eg.数组或列表.
如果第一个操作数是数组,则结果默认为Array.
如果第一个操作数是List,则结果默认为List.

默认情况下,编译器将“-3”视为String.
所有字符串也可以视为集合(在需要时通过隐式转换).但是什么类型的收藏?是Array吗?是List吗?取决于它在操作的集合类型上的用法.

例如,
????当它用作数组(“1”)“ – 3”时,默认情况下字符串“-3”将被编译器视为Array [Char],因为第一个操作数是一个数组(尽管元素的类型将是默认情况下始终为Char,由编译器提供)
????使用它作为List(“1”)“ – 3”时,字符串“-3”默认将被视为List [Char],因为第一个操作数是List(尽管元素的类型将始终为Char默认,由编译器)

当操作符遇到两个操作数时,是不同类型元素的集合,它们在类型层次结构中最接近的超类型将是结果集合的元素类型.
????超类型的String,它是第一个操作数(集合)和Char的元素类型,
第二个操作数(集合)的元素类型是Any.
所以
数组(“1”)的结果“-3”是数组[任意].

如果要将字符串“-3”作为元素添加到集合Array(“1”),则必须将其作为元素添加到此集合中.还有另一种方法,即:,或:将元素追加或添加到集合中,如下所示.

要附加到集合:

scala> Array("1") :+ "-3"
res6: Array[String] = Array(1,-3)

要预先加入集合:

scala> "-3" +: Array("1")
res7: Array[String] = Array(-3,1)

执行上述操作的另一种方法如下(将元素转换为集合和使用方法):

scala> Array("1") ++ Array("-3")
res9: Array[String] = Array(1,-3)

scala> Array("-3") ++ Array("1")
res10: Array[String] = Array(-3,1)

scala>

(编辑:李大同)

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

    推荐文章
      热点阅读