《快学Scala》第一章练习题答案+概述

第一章

***内容概述

  • 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)
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值