1 / 4
文档名称:

快学scala第二章习题答案.doc

格式:doc   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

快学scala第二章习题答案.doc

上传人:012luyin 2016/7/10 文件大小:0 KB

下载得到文件列表

快学scala第二章习题答案.doc

文档介绍

文档介绍:2控制结构和函数 一个数字如果为正数, 则它的 signum 为 1; 如果是负数, 则 signu m 为-1; 如果为 0, 则 signum 为 0. 编写一个函数来计算这个值简单的逻辑判断 def signum (num :Int ){ if (num>0)print(1) else if (num<0)print(-1) else print(0)} Scala 中已经有此方法了,刚才查找 API 的时候,应该能看到 BigInt(10).signum 一个空的快表达式{} 的值是什么?类型是什么? 在 REPL 中就能看出来了 scala> val t={} t: Unit =() 可以看出,它的值是() 类型是 Unit 指出在 Scala 中何种情况下赋值语句 x=y=1 是合法的。( 提示:给 x 找个合适的类型定义) 题目已经给了明确的提示了。本章节中已经说过了,在 scala 中的赋值语句是 Unit 类型。所以只要 x 为 Unit 类型就可以了。 scala> var y=4; y: Int =4scala> var x={} x: Unit =() scala> x=y=7 x: Unit =() 这也再次证明了{}是 Unit 类型 针对下列 Java 循环编写一个 Scala 版本:for(int i=10;i>=0;i –)(i); 使用 Scala 版本改写就 OK 了 for (i <- 0to 10 reverse)print(i) 编写一个过程 countdown(n:Int) ,打印从 n到0 的数字这个就是将上面的循环包装到过程中而已。还是换个写法吧。 def countdown (n:Int ){ 0to nreverse foreach print } 编写一个 for 循环, 计算字符串中所有字母的 Unicod e 代码的乘积。举例来说, "Hello" 中所有字符串的乘积为 9415087488L scala> var t:Long =1 t: Long =1scala> for(i <- "Hello"){ |t=t* |}scala> tres57: Long =9415087488 同样是解决前一个练****的问题,但这次不使用循环。(提示: 在 Scaladoc 中查看 StringOps ) scala> var t:Long =1 t: Long =1scala> "Hello".foreach(t *= ) scala> tres59: Long =9415087488 编写一个函数 product(s:String) ,计算前面练****中提到的乘积 def product (s: