《快学Scala》第一版第一章练习

系列文章目录

《快学Scala》第一版第一章练习

《快学Scala》第一版第二章练习

《快学Scala》第一版第三章练习 


前言

 这学期开了《Spark编程基础》,需要用到Scala语言,书上写的比较简单,本着学一门语言就应该尽量往深处学的想法,到图书馆借了一本《快学Scala》,英文名《Scala for the Impatient》,争取每周看完两章,并将相应练习写成博客。

练习

1.在Scala REPL中键入3,然后按Tab键。有哪些方法可以被应用?

2.在Scala REPL中,计算3的平方根,然后再对该值求平方。现在,这个结果与3相差多少?(提示:res变量是你的朋友。)

 需要先引入scala.math._

import scala.math._

 计算3的平方根

通过pow(res12, 2) 求平方

也可以使用 res12 * res12 求平方

使用 3 减去该值,这里减 res13 或者 res14 都可以

 结果约为4.44乘以10的负16次方

3.res变量是val还是var?

给res16赋值

提示表明,res变量是val。

4.Scala允许你用数字去乘字符串——区REPL中试一下 "crazy" * 3。这个操作做什么?在Scaladoc中如何找到这个操作?

 可以发现,对字符串1乘n,便是将n个字符串1拼接在一起。

因为是字符串操作,所以先查找StringOps类,在StringOps类的Value Members中找到" * "操作

5. 10 max 2 的含义是什么?max方法定义在哪个类中?

10 max 2 的含义:在10和2中选出大的数字。实际调用的是10.max(2)

max方法在很多类中都有定义,这里使用的max方法定义在Int类中。

6.用BigInt计算2的1024次方。

引入scala.math._

import scala.math._

通过BigInt(2)建立一个值为2的BigInt类型的res变量

调用pow() 方法求2的1024次方

 也可以直接使用BigInt(2).pow(1024),省去中间res变量的建立

7.为了在使用probablePrime(100, Random)获取随机素数时不在probablePrime和Random之间使用任何限定符,你需要引入什么?

import scala.util._

8.创建随机文件的方式之一是生成一个随机的BigInt,然后将它转换成三十六进制,输出类似"qsnvbevtomcj38o06kul"这样的字符串。查阅Scaladoc,找到在Scala中实现该逻辑的方法。

使用BigInt类中的toString(n:int) 将该BigInt变量转换成n进制。

 Scaladoc中查找BigInt类,在value Members中找到toSpring()方法

9.在Scala中如何获取字符串的首字符和尾字符?

使用headlast方法。

10.take、drop、takRight和dropRight这些字符串函数是做什么用的?和substring相比,它们的优点和缺点都有哪些?

首先是各个函数的作用:

 take(n)是获取一个字符串的前n个字符

 drop(n)是获得一个字符串除去前n个字符后剩下的子串。

takeRight(n)是获取一个字符串的后n个字符。

dropRight(n)是获取一个字符串除去后n个字符后剩下的子串。

substring有多种用法,与前四种函数相比,substring函数的优势在于可以轻易获取中间字串。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江鸟2002

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值