0

我正在将 C 程序转换为 Swift。我有一个 64 个元素的 unsigned int 8 位数组,我可以在 Swift3 中将其编写为:

let BLAKE2B_KEYBYTES = 64
var mem = [UInt8](repeating: 0, count: BLAKE2B_KEYBYTES)

然而,Swift 2.2 需要这样:

let BLAKE2B_KEYBYTES = 64
var mem = [UInt8](count: BLAKE2B_KEYBYTES, repeatedValue: 0)

所以,关键字不同,位置很重要,因为在 2.2 中计数必须在重复值之前,但在 3 中重复必须在计数之前。

在线文档在这些问题上相当粗略。我找不到的是关于 Swift 2.2 语法的权威文档。如果有人能指出我关于 Swift 2.2 的真相,我将不胜感激。

4

1 回答 1

1

您正在寻找具有初始化语法的数组结构参考(Swift 2.2)。您也可以 ⌘-单击代码中的单词 Array 以跳转到 Array 接口/定义。

对于 Swift 3 及更高版本,最终真相的来源是标准库中的 Array 实现:https ://github.com/apple/swift/blob/master/stdlib/public/core/Arrays.swift.gyb#L510 -L520

于 2016-04-20T21:05:04.577 回答