系列文章目录

《快学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中如何获取字符串的首字符和尾字符?

使用head和last方法。

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

首先是各个函数的作用:

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

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

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

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

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

相关链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。