曹洁 Spark编程Scala版本课后习题答案

第二章课后习题
2-1

选D
D项错在元组可以定义多个元素,通过(x,x,x,…)

在这里插入图片描述

2-2

选A

A错在 元组的访问方式是 x._1来访问元组中的第一个元素。注意是从下标1开始的,数组是从下标0开始的。

2-3

这里的意思应该是说用var和val的区别:

val声明一个变量时,必须赋初始值,并且后续操作不能修改其值。而var声明的变量可以重复使用,任意修改,并且以最后一次修改的值为准。

>

如上,不初始化报错;

>

如上,初始化后修改值报错。

关于书上讲到的var声明变量可以不初始化,我试验是错的。

> [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TQWHxGTG-1656343499271)(C:/Users/dell/AppData/Roaming/Typora/typora-user-images/image-20220622191305135.png)]

2-4

val nums = List(1,7,9,8,0,3,5,4,6,2)
val res = nums.map(x => x*10)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MfkSPyq1-1656343499271)(C:/Users/dell/AppData/Roaming/Typora/typora-user-images/image-20220623212207212.png)]

2-5

 def judge(num:Int) ={ if (num > 0 ) 1 else if(num < 0 ) -1 else 0 }

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ewJ8L5xn-1656343499272)(C:/Users/dell/AppData/Roaming/Typora/typora-user-images/image-20220622172638492.png)]

2-6

for(num <-100 until 1000){ val a = num /100;val b = num  /10 %10;val c = num % 10; val temp = a*a*a + b*b*b + c*c*c; if(num == temp) printf(" %d",num)}
//153 370 371 407

2-7

class vectorfunc(a:Int,b:Int,c:Int){
    var a1 = a;var b1 = b;var c1 = c; 
    def add(aa:Int,bb:Int,cc:Int) ={
        a1 += aa; b1 += bb; c1 += cc
         printf("(%d,",a1);printf("%d,",b1);printf("%d)",c1)
    }
}
new vectorfunc(1,2,3).add(4,5,6)
//减法类似
//标量乘法我理解为一个数乘以向量的每一个数,实现过程类似

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wCvSzeiM-1656343499272)(C:/Users/dell/AppData/Roaming/Typora/typora-user-images/image-20220622184805945.png)]

2-8

val s = "Hello"
var res:Long = 1;
for(i <- s){ res = res * i.toLong}//toLong是转化为Long类型
print(res) //这里是写死的。可以定义函数传参,如下:

def sum(s:String) = {
    var res:Long = 1;
    for( i <- s)
    res = res*i.toLong
    print(res)
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2nj3iQrv-1656343499272)(C:/Users/dell/AppData/Roaming/Typora/typora-user-images/image-20220622190344437.png)]

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值