Swift 5 - 如何将 struct/type 定义为数组?
Swift 5 - how to define struct/type as array?
假设我定义了这样的 Position
结构:
struct Movement : Codable {
var x: Int
var y: Int
var delay: Int
}
现在我想传递 [0,0,0]
而不是 {"x":0,"y":0,"delay":123}
。如何将 Movement 定义为恰好具有 3 个 int 值的数组?
我在Swift中有一个API,它接收到一个JSON对象,需要移动鼠标。目前 JSON 类似于 [{"x":1,"y":2,"delay":123},....]
,我想为此发送 [[1,2,123],...]
我想用其他东西替换 Movement
类型。
您可以使用 ExpressibleByArrayLiteral, but don't. Your type is already available as SIMD2.
([0, 0] as SIMD2).scalarCount // 2
你可以直接解码成你想要的格式
let data = #"[{"x":1,"y":2,"delay":123},{"x":2,"y":2,"delay":25}]"#.data(using: .utf8)!
let array = try! JSONDecoder().decode([[String: Int]].self, from: data)
.map { [[=10=]["x"]!, [=10=]["y"]!, [=10=]["delay"]!]}
这假设键“x”、“y”和“delay”始终存在
假设我定义了这样的 Position
结构:
struct Movement : Codable {
var x: Int
var y: Int
var delay: Int
}
现在我想传递 [0,0,0]
而不是 {"x":0,"y":0,"delay":123}
。如何将 Movement 定义为恰好具有 3 个 int 值的数组?
我在Swift中有一个API,它接收到一个JSON对象,需要移动鼠标。目前 JSON 类似于 [{"x":1,"y":2,"delay":123},....]
,我想为此发送 [[1,2,123],...]
我想用其他东西替换 Movement
类型。
您可以使用 ExpressibleByArrayLiteral, but don't. Your type is already available as SIMD2.
([0, 0] as SIMD2).scalarCount // 2
你可以直接解码成你想要的格式
let data = #"[{"x":1,"y":2,"delay":123},{"x":2,"y":2,"delay":25}]"#.data(using: .utf8)!
let array = try! JSONDecoder().decode([[String: Int]].self, from: data)
.map { [[=10=]["x"]!, [=10=]["y"]!, [=10=]["delay"]!]}
这假设键“x”、“y”和“delay”始终存在