快学Scala课后习题分享 第一章 基础 A1

第一章 基础 A1

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

快学Scala课后习题分享 第一章 基础 A1

2. 在Scala中,计算3的平方根,然后再对该值求平方,现在这个值与3相差多少?

答案:引入scala的数据函数需要引入math包,有两种方式

//方式一
improt math._
val result = 3-pow(sqrt(3),2) 

//方式二位
val result = 3-math.pow(math.sqrt(3),2) 
3. res变量是val 还是var?

通过测试,我们发现res2不可以被赋值,因此为不可以变变量,所以答案是val
快学Scala课后习题分享 第一章 基础 A1

4. Scala允许你使用数据乘以字符串----去REPL中试一下“crazy” * 3 ,这个操作做什么,在Scaladoc中如何找到这个操作?

使用zeal,下载scala的官方文档,字符串的操作是在StringOps这个类中,查找对应的类,会列出该类的方法,如下,在该类的第一个方法,就是* 代表的方法。返回值为 返回链接了n词的字符串。
在scala.collection.StringOps这个类中,可以找到对应方法
快学Scala课后习题分享 第一章 基础 A1

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

10 max 2 的含义是 10.max(2) 。实际是10调用了Int类中的max方法。
快学Scala课后习题分享 第一章 基础 A1

6. 用BigInt计算2的1024次方。
//在Scaladoc中可以查到BigInt有pow的方法,但是使用数据无法直接调用,因此做法如下
val result = BigInt(2).pow(1024)
7. 为了在使用probablePrime(100,Random)获取随机素数时,不在probablePrime和Random之前使用任务限定符,你需要引入什么?

用过Scaladoc查询,可以找到 probalePrime方法在BigInt类中,Random类在math.util包中,因此代码如下

import scala.util.Random
import scala.math.BigInt
val result =  BigInt.probablePrime(100,new Random())
8. 创建随机文件的方法之一是生成一个随机的BigInt,然后将它转化为三十六进制,输出类似“lkdsjfapasoer6385askdjf”这样的字符串。查阅Scaladoc找到在Scala中实现该逻辑的方法。
//使用上步骤的结果,转化乘十六进制
import scala.util.Random
import scala.math.BigInt
val result1 =  BigInt.probablePrime(100,new Random()).toString(36)
9. 在Scala中如何获取字符串的首字符和尾字符?
//获取字符串首字符的方法有两种
val first1 = "hello".head
val first2 = "hello".take(1)

//获取尾字符的方法是
val tail1 = "hello".takeRight(1)
10. take,drop,takeRight和dropRight这些字符串函数是做什么用的,和subString相比,他们有什么优点和缺点?

take(n:Int) return A string containing the first n chars of this string. 获取从第一个字符到第n个字符的一个字符串

drop (n:Int) The rest of the string without its n first chars. 返回去除首字符到第n个字符之外的字符串

takeRight(n: Int) A string containing the last n chars of this string. 返回包含最后n个字符的字符串

dropRight(n: Int) The rest of the string without its n last chars. 返回没有最后n个字符的字符串

substring(start: Int, end: Int)

Returns a new String made up of a subsequence of this sequence, beginning at the start index (inclusive) and extending to the end index (exclusive).

target.substring(start, end) is equivalent to target.slice(start, end).mkString

返回新的string,这个string有开始的索引值结束的索引结束

substring(start: Int, end: Int) 可以*的截取字符串任意位置,但是上面的方法截取非首尾位置时候,需要使用多次。

上一篇:MySQL 修改int类型为bigint SQL语句拼接


下一篇:mysql中毫秒的保存类型