10.7 同步练习

  1. 下列选项中,正确表示闭包定义的是(  )。

A.

  1. { (参数列表) ->返回值类型
  2. 语句组
  3. }

B.

  1. { (参数列表) ->返回值类型 in
  2. 语句组
  3. }

C.

  1. { (参数列表) ->返回值类型
  2. 语句组
  3. }

D.

  1. { (参数列表) in
  2. 语句组
  3. }
  1. 下列选项中,闭包表达式正确的是(  )。

A.

  1. var testEquality1 : (Int, Int) -> Bool = {
  2. return $0 == $1
  3. }

B.

  1. var testEquality2 : (Int, Int) -> Bool = {
  2. $0 == $1
  3. }

C.

  1. var testEquality3 : (Int, Int) -> Bool = {
  2. (a : Int, b : Int) -> Bool in
  3. return a == b
  4. }

D.

  1. var testEquality4 : (Int, Int) -> Bool = {
  2. (a : Int, b : Int) -> Bool
  3. return a == b
  4. }
  1. 下列选项中,使用闭包表达式实现两个数相减的是(  )。

A.

  1. var DoMath: (Int, Int) -> Int = {(a:Int, b:Int) -> Int in
  2. return a-b
  3. }

B.

  1. var DoMath: (Int, Int) -> Int = {(a, b) return a-b}

C.

  1. var DoMath: (Int, Int) -> Int = {(a, b) in return a-b}

D.

  1. var DoMath: (Int, Int) -> Int = {$0-$1}
  1. 下面是一个函数的定义:
  1. func applyMutliplication(value: Int, multFunction: Int -> Int) -> Int {
  2. return multFunction(value)
  3. }

能正确地调用applyMutliplication函数的语句是(  )。

A.

  1. applyMutliplication(2, {value in
  2. value * 3
  3. })

B.

  1. applyMutliplication(2, {value in
  2. return value * 3
  3. })

C.

  1. applyMutliplication(2, {$0 * 3})

D.

  1. applyMutliplication(2) {$0 * 3}
  1. 数组类型有一个sort方法可以实现参数数组元素的排序。给出一个数组定义var array = [3,2,4,1],那么下列排序语句正确的是(  )。

A. array.sort({ (item1: Int, item2: Int) -> Bool in return item1 < item2 })

B. array.sort({ (item1, item2) -> Bool in return item1 < item2 })

C. array.sort({ (item1, item2) in return item1 < item2 })

D. array.sort { (item1, item2) in return item1 < item2 }

E. array.sort { return $0 < $1 }

F. array.sort { $0 < $1 }