从Scala2.13.0开始废弃了一些方法
Posted howard2005
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Scala2.13.0开始废弃了一些方法相关的知识,希望对你有一定的参考价值。
文章目录
- 为了做比较,安装两个版本的Scala:2.13.8和2.12.0
一、其它类型数据加字符串
-
说明:字符串
加
其它类型,会自动将其它类型转换成字符串进行连接
-
在Scala2.13.0以前的版本,其它类型
加
字符串,Scala会自动将其它类型数据转换成字符串再进行连接,跟Java一个样,比如我们来看Scala2.12.0版本
-
从Scala2.13.0版开始,字符串跟其它类型连接,会弹出一个警告,比如现在我使用的Scala2.13.8
-
警告:
Int
类的+
方法自从Scala2.13.0版本就被废弃掉了,把一个数字加到一个字符串的操作被废弃掉了。使用字符串插值s"$num$str"。
-
字符串前加个
s
,系统才会将字符串里的$num
的值解析出来,否则就当成普通字符串处理
-
注意:要解析的变量后面至少要留一个空格,否则会报错
-
当然,还可以用其它方法,比如其它数据类型都提供了一个
toString
方法,将自己转换成字符串
二、处理可变参数时有变化
(一)Scala2.12.0版本
- 定义函数
addData
,参数a是字符型变量,参数b是可变整型变量
- 将数组传入可变参数,必须在数组变量后加
:_*
,才能将数组不作为一个整体传入,而是将其元素逐个传入。
(二)Scala2.13.8版本
-
同样定义函数
addData
,参数a是字符型变量,参数b是可变整型变量
-
虽然给出了正确结果,但是给了警告。自从Scala2.13.0版本,将一个显式数组值传递给可变参数方法的做法已经被废弃掉了,而且会导致一个保护性拷贝。建议使用更有效的非拷贝的
ArraySeq.unsafeWrapArray
或显式的toIndexedSeq
调用。 -
我们采用
ArraySeq.unsafeWrapArray
来Kill掉令人不爽的警告信息
三、查看Scala2.13.8库
- 网址:https://www.scala-lang.org/api/current/scala/index.html
- 搜索ArraySeq类
以上是关于从Scala2.13.0开始废弃了一些方法的主要内容,如果未能解决你的问题,请参考以下文章