Assignment Help logo
在线聊天

Loading...

Score %0 (0 correct0 incorrect20 unanswered)

Q1. Scala bytecode 可以在 Java VM 上运行。Java object.clone() 和 Scala object.copy() 之间的根本区别是什么?

  • 一个是 Java 对象,另一个是 Scala 对象。
  • clone() 会复制类结构但不会复制数据,而 copy() 也会将数据复制到新对象中。
  • 没有区别。
  • copy() 允许在复制过程中更改值;clone() 不允许。

Q2. 这段代码返回什么值?

val m1 = Map("a"->1,"b"->2,"c"->3)
m1("a")
  • a
  • 2
  • b
  • 1

Q3. 避免低级并行化细节的一种方式是什么?

  • monads
  • literal functions
  • partially applied functions
  • parallel collections

Q4. 在 ScalaTest 中,用于在测试失败时查看详细错误消息的方法是什么?

  • ArgumentExceptions
  • AssertionException
  • DiagrammedAssertions
  • JUnit

Q5. 用于存储包含固定数量不同类型对象的不可变集合的数据类型是什么?

  • Array
  • ImmutableCollection
  • List
  • Tuple

Q6. 在解释器中定义函数后,Scala 返回以下内容。() 表示什么?

myfnc: ()Unit
  • 函数没有副作用。
  • 函数不接受参数。
  • 函数不返回值。
  • 返回 unit 类型到函数是闭包。

Q7. 数字 1234.e5 是什么类型的数?

  • 十六进制
  • 短整型
  • 浮点数
  • 长整型

Q8. 当你使用映射的 toList 方法将映射转换为列表时,结果将是什么类型?

  • List[(String, String)]
  • List[(Array, Array)]
  • List[(Collection, Collection)]
  • List

Q9. 这段代码创建了什么类型的对象?

val x = (1234, "Active")
  • List
  • Map
  • Tuple
  • Array

Q10. 以下哪个是所有类的子类?

  • AnyVal
  • AnyRef
  • Method
  • Null

Null in Scala Standard library。问题有点不正确 - Null 是每种类型的子类型,除了值类的类型

Q11. 对于 for-yield 结构,for-body 和 yield-body 的作用域是否分开?

  • 是和否。这取决于 for 结构以及它的功能。
  • 是,因为 for 部分不暴露其作用域。
  • 不是,因为 for-yield 共享相同的作用域,尽管它们位于不同的花括号内。
  • 是,因为它们位于不同的花括号内。

示例:yield-body 可以访问 for-body 中的 e 变量

val a = Array(1, 2, 3, 4, 5)
for {
     e <- a if e > 2
} yield e

Q12. 实现方法的模式匹配的一种方法是什么?

  • 使用正则表达式
  • 使用 monads
  • 使用字符串匹配
  • 使用 case 类

注:这个问题有歧义,不清楚这里指的是什么类型的 pattern matching

Q13. 执行此代码后,z 的值是多少?

val y = List('a','b')
val z = y::List('c')
  • List(a,b,c)
  • List(List(a, b), c)
  • List(c,a,b)
  • List(c,List(a,b))

Q14. 用于指定前置条件的术语是什么?

  • assert
  • require
  • precondition
  • mustHave

Q15. 哪种 Scala 类型可能会抛出异常或成功计算值,并且通常用于捕获和传播错误?

  • scala.util.ExceptionHandling
  • scala.Catch.Throw
  • scala.exception.TryFinally
  • scala.util.Try

scala.util.Try

Q16. 执行此代码后,y 的数据类型是什么?

val y = (math floor 3.1415 * 2)
  • 短整型
  • 双精度浮点数
  • 整型
  • 大整型

Q17. 在使用模式匹配时,哪个字符匹配任何对象?

  • %
  • _
  • ^
  • -

Pattern Matching

Q18. 使用 val 创建了一个数组。你可以更改数组中任何元素的值吗?为什么或为什么不?

  • 是,数组的引用是不可变的,因此数组指向的位置是不可变的。数组中的值是可变的。
  • 第 0 个元素是不可变的,无法修改。所有其他元素都可以修改。
  • 是,val 不会使数组不可变。
  • 不,val 使数组和数组的值不可变。

解释

val a1 = Array(1, 2, 3)
a1{1} = 3 // OK
a1 = Array(

1, 3, 3) // 错误:不能重新分配给 val

Q19. 此函数的输出是什么?

def main () {
     var a = 0
     for (a<-1 until 5){println(a)}
  • 1,2,3,4,5
  • 0,1,2,3,4
  • 1,2,3,4
  • 2,3,4,5

Q20. 有不可变状态的对象称为什么?

  • 单例对象
  • 静态对象
  • 函数式对象
  • 固定对象

注意: 单例对象可能具有可变状态。