Assignment Help logo
在线聊天

Loading...

Score %0 (0 correct0 incorrect20 unanswered)

Q1. 这段代码的示例是什么?

let val = (Double)6
  • 语法问题
  • 类型转换
  • 赋值
  • 初始化

参考:The Swift Programming Language: Language Guide: The Basics: Constants and Variables

Q2. 这段代码中的错误是什么?

let x = 5
guard x == 5 { return }
  • guard 缺少了 else
  • 没有错误
  • guard 缺少了 then
  • 比较错误

参考:The Swift Programming Language: Language Guide: Control Flow: Early Exit

Q3. 这个枚举的原始/底层类型是什么?

enum Direction {
  case north, south, east, west
}
  • 没有
  • String
  • Any
  • Int

参考:The Swift Programming Language: Language Guide: Enumerations: Raw Values

Q4. 在某些情况下为什么要使用 dispatchGroup?

  • 允许多个同步或异步操作在不同队列上运行。
  • 允许跟踪和控制多个操作的执行。
  • 允许操作按需要等待彼此。
  • 所有这些答案。

参考:Apple Developer: Documentation: Dispatch: Dispatch Group

Q5. 这段代码的示例是什么?

let val = 5
print("value is: \(val)")
  • 字符串插值
  • 字符串编译
  • 方法链
  • 字符串连接

参考:The Swift Programming Language: Language Guide: Strings and Characters: String Interpolation

Q6. 在执行此代码后,vals 的内容是什么?

var vals = [10, 2]
vals.sort { (s1, s2) -> Bool in
  s1 > s2
}
  • [10, 2]
  • [2, 10]
  • nil
  • 此代码包含错误

参考:Apple Developer: Documentations: Swift: Array: sort()

Q7. 这段代码会打印什么?

typealias Thing = [String: Any]
var stuff: Thing
print(type(of: stuff))
  • Dictionary<String, Any>
  • Dictionary
  • Error
  • Thing

参考:The Swift Programming Language: Language Reference: Types: Type Identifier

Q8. y 的值是多少?

let x = ["1", "2"].dropFirst()
let y = x[0]
  • 此代码包含错误
  • 1
  • 2
  • nil

解释
Swift.Collection.Array 中的 dropFirst() 返回一个 ArraySlice<Element> 类型
如文档所述:
@inlinable public func dropFirst(_ k: Int = 1) -> ArraySlice<Element>

ArraySlice 类型使您能够快速有效地在较大数组的各个部分执行操作。与将一个切片的元素复制到新存储中不同,ArraySlice 实例提供了对较大数组的存储的视图。由于 ArraySlice 提供与 Array 相同的接口,因此您通常可以对切片执行与原始数组相同的操作。

切片保留索引
与 Array 和 ContiguousArray 不同,ArraySlice 实例的起始索引并不总是零。切片保持较大数组的相同元素的相同索引,因此切片的起始索引取决于如何创建它,从而使您能够在完整数组或切片上执行基于索引的操作。
以上代码返回值的切片为 ["2"],但索引未更改。let y = x[1] 将给出预期结果。
为了安全地引用切片的起始和结束索引,请始终使用 startIndex 和 endIndex 属性,而不是具体值。
参考

Q9. 在此代码中,test 的值是多少?

var test = 1 == 1
  • true
  • YES
  • 1
  • 此代码包含错误

参考:The Swift Programming Language: Language Guide: Basic Operators: Comparison Operators

Q10. y 的值是多少?

var x: Int?
let y = x ?? 5
  • 5
  • 0
  • nil
  • 此代码包含错误

参考:The Swift Programming Language: Language Guide: Basic Operators: Nil-Coalescing Operators

Q11. 这个函数的类型是什么?

func add(a: Int, b: Int) -> Int { return a+b }
  • Int
  • (Int, Int) -> Int
  • Int<Optional>
  • 函数没有类型。

参考:The Swift Programming Language: Language Guide: Functions: Function Types

Q12. 调用这个函数的正确方式是什么?

func

 myFunc(_ a: Int, b: Int) -> Int {
  return a + b
}
  • myFunc(5, b: 6)
  • myFunc(5, 6)
  • myFunc(a: 5, b: 6)
  • myFunc(a, b)

参考:The Swift Programming Language: Language Guide: Functions: Function Argument Labels and Parameter Names

Q13. Codable 协议是什么?

  • EncodableDecodable 的结合
  • 不是一个真正的协议
  • 所有类的必需
  • 自动包含在所有类中

参考:

Q14. 在此代码中,value1 的类型是什么?

let value1 = "\("test".count)"
  • String
  • Int
  • null
  • test.count

参考:The Swift Programming Language: Language Guide: Strings and Characters: String Interpolation

Q15. 当函数将闭包作为参数时,何时要标记为逃逸?

  • 当函数返回后执行时
  • 当其范围未定义时
  • 当其延迟加载时
  • 所有这些答案

参考:The Swift Programming Language: Language Guide: Closures: Escaping Closures

Q16. 这段代码有什么问题?

class Person {
  var name: String
  var address: String
}
  • Person 没有初始化器。
  • Person 没有基类。
  • var name 格式不正确。
  • address 是一个关键字。

参考:The Swift Programming Language: Language Guide: Initialization: Class Inheritance and Initialization

Q17. 在执行此代码后,names 的值是什么?

let names = ["Bear", "Joe", "Clark"]
names.map { (s) -> String in
  return s.uppercased()
}
  • ["BEAR", "JOE", "CLARK"]
  • ["B", "J", "C"]
  • ["Bear", "Joe", "Clark"]
  • 此代码包含错误。

Q18. 描述这行代码?

let val = 5
  • 类型为 Int 的常量名为 val
  • 类型为 item 的变量名为 val
  • 类型为 Number 的常量名为 val
  • 类型为 Int 的变量名为 val

参考:The Swift Programming Language: Language Guide: The Basics: Type Safety and Type Inference

Q19. 此代码中的错误是什么?

extension String {
  var firstLetter: Character = "c" {
    didSet {
      print("new value")
    }
  }
}
  • 扩展不能添加属性。
  • 没有错误。
  • didSet 接受一个参数。
  • c 不是一个字符。

参考:The Swift Programming Language: Language Guide: Extensions: Computed Properties

Q20. didSet 和 willSet 是哪种类型的示例?

  • 属性观察器
  • 关键属性
  • 所有这些答案
  • newOld 值调用

参考:The Swift Programming Language: Language Guide: Properties