第一章
***内容概述
- 1、使用Scala解释器
- 2、var和val定义变量
- 3、声明值和变量
- 4、数据类型
Byte、Char、Short、Int、Long、Float、Double、Boolean - 5、使用操作符合函数
+ - * / % to += -= 没有 ++、-- sqrt(2) // 开平方 pow(2,4) // 乘 min(3,8) //最小值 apply方法 构造对象的常用方法
***习题
-
1.在Scala REPL 中输入.3.然后按Tab键。有哪些方法可以被应用(不知道怎么回事,要在3前面加个点(.))
!= < >>> doubleValue isNaN isValidShort shortValue toDouble toShort % << ^ floatValue isNegInfinity isWhole signum toFloat unary_+ & <= abs floor isPosInfinity longValue to toHexString unary_- * == byteValue getClass isValidByte max toBinaryString toInt unary_~ + > ceil intValue isValidChar min toByte toLong underlying - >= compare isInfinite isValidInt round toChar toOctalString until / >> compareTo isInfinity isValidLong self toDegrees toRadians | ```
-
2.在Scala REPL中,计算3的平方根,然后再对该值求平方。现在,这个结果与3相差多少?(提示:res变量是你的朋友) 依次进行计算即可
scala> scala.math.sqrt(3) res0: Double = 1.7320508075688772 scala> res0 * res0 res1: Double = 2.9999999999999996 scala> 3-res1 res2: Double = 4.440892098500626E-16
-
3.res变量是val还是var?
val是不可变的,而var是可变的,只需要给res变量重新赋值就可以检测res是val还是var了 scala> res2 = 0 <console>:14: error: reassignment to val
-
4.4Scala允许你用数字去乘字符串—去 REPL 中试一下"crazy"*3。这个操作做什么?在Scaladoc中如何找到这个操作?
scala> "crazy" * 3 res3: String = crazycrazycrazy 此方法在StringOps中。
-
5.10max 2的含义是什么?max方法定义在哪个类中?
scala> 10 max 2 res4: Int = 10 可以看出,此方法返回两个数字中较大的那个。此方法Java中不存在,所以在RichInt中。
-
6.用BigInt计算2的1024次方
scala> BigInt(2).pow(1024) res6: scala.math.BigInt = 179769313486231590772930519078902473361797697894230657273430 081157732675805500963132708477322407536021120113879871393357658789768814416622492 84743063947412437776789342486548527630221960124609411945308295208500576883815068 2342462881473913110540827237163350510 684586298239947245938479716304835356329624224137216
-
7.为了在使用probablePrime(100,Random)获取随机素数时不在probablePrime和Radom之前使用任何限定符,你需要引入什么?
import需要的包啊。Random在scala.util中,而probablePrime是BigInt中的方法
-
8 创建随机文件的方式之一是生成一个随机的BigInt,然后将它转换成三十六进制,输出类似"qsnvbevtomcj38o06kul"这样的字符串。查阅Scaladoc,找到在Scala中
scala.math.BigInt(scala.util.Random.nextInt).toString(36) res7: String = utydx
-
9.在Scala中如何获取字符串的首字符和尾字符?
//获取首字符 "Hello"(0) "Hello".take(1) //获取尾字符 "Hello".reverse(0) "Hello".takeRight(1)