《快学scala》习题详解 第1章 基础

1 输入3按Tab没反应,加了.空格键才会触发

会将Int转为RichInt

2. 对3开方再乘方
scala> import math._
import math._

scala> math.sqrt(3)
res0: Double = 1.7320508075688772

scala> math.pow(res0,2)
res1: Double = 2.9999999999999996
3 通过赋值,产生错误,因此是var
scala> res0=3
<console>:15: error: reassignment to val
       res0=3
           ^
4 “crazy”*3,”crazy”将被复制3次
scala> "crazy"*3
res2: String = crazycrazycrazy

方法位于StringOps中

5. 10 max 2,找出最大值,处于BigInt
scala> 10 max 2
res0: Int = 10
6. 用BigInt计算2的1024次方

直接使用pow方法出错

scala> val x:BigInt=math.pow(2,1024)
<console>:11: error: type mismatch;
 found   : Double
 required: BigInt
       val x:BigInt=math.pow(2,1024)

使用BigInt的方法

scala> BigInt(2).pow(1024)
res1: scala.math.BigInt = 179769313486231590772930519078902473361797697894230657
27343008115773267580550096313270847732240753602112011387987139335765878976881441
66224928474306394741243777678934248654852763022196012460941194530829520850057688
38150682342462881473913110540827237163350510684586298239947245938479716304835356
329624224137216
7. 为了在使用probablePrime(100,Random)获取随机素数时不在probablePrime和Radom之前使用任何限定符,你需要引入什么?

获取长度为100位(二进制)的随机素数

probablePrime是BigInt中的方法,Random是Util中的

scala> import math.BigInt._
import math.BigInt._

scala> import util._
import util._

scala> probablePrime(100,Random)
res8: scala.math.BigInt = 1251608343750013616100676054601
8. 创建随机文件的方式之一是生成一个随机的BigInt,然后将它转换成三十六进制,输出类似”qsnvbevtomcj38o06kul”这样的字符串。

def toString(radix:Int),将BigInt转换为指定的进制数

scala> scala.math.BigInt(scala.util.Random.nextInt).toString(36)
res12: String = -7kqjpc
scala> scala.math.BigInt(scala.util.Random.nextInt).toString(2)
res19: String = 1011100101110001000111100111010
9. 获取首尾字符

//获取反向迭代器

scala> "Scala"(0)
res30: Char = S

scala> var x= "Scala".reverseIterator
x: Iterator[Char] = non-empty iterator

scala> x.next()
res25: Char = a
10. take,drop,takeRight和dropRight这些字符串函数是做什么用的?和substring相比,他们的优点和缺点都是哪些?
take/drop/takeRight/dropRight位于StringOps中

def take (n:Int):String // 获取前n个元素
def takeRight(n: Int): String //获取最后n个元素
def drop(n: Int): String //获取所有元素,除了前n个
def dropRight(n: Int): String //获取所有元素,除了最后n个

substring调用的是java的方法
def substring(arg0: Int): String // 截取所有字符,除了前n个,类似drop(索引从1开始)
def substring(arg0: Int, arg1: Int): String //从索引[arg0,arg1)截取字符串(索引从0开始)

对于文章中出现在数字列表,论坛支持的实在不好,有时间了自己搭站点了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值