曹洁 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 += ccprintf("(%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.toLongprint(res)
}

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部