在 swift 中写入一个 String init
Write a String init in swift
在我的代码中,大小为 3 的 [Int]
数组具有特殊含义。我想得到它的字符串表示形式。
在我看来,swift 中最惯用的是编写一个新的字符串初始值设定项。
像这样:
extension String {
public init(point: [Int]) {
assert(condition: point.count == 3)
let r = "x=\(point[0]) y=\(point[1]) z=(point[2])"
self.init(stringLiteral: r) // what should I write here ?? This feels clumsy ?
}
这个 init
的结尾应该是什么?我无法分配给 self
,也没有其他明显的初始化可以调用。
首先,字符串插值行中缺少一个反斜杠。
只需调用 self.init
并以 r
作为参数。从技术上讲,它是一个 便利初始化程序 。
extension String {
public init(point: [Int]) {
assert(point.count == 3)
let r = "x=\(point[0]) y=\(point[1]) z=\(point[2])"
self.init(r)
}
}
在我的代码中,大小为 3 的 [Int]
数组具有特殊含义。我想得到它的字符串表示形式。
在我看来,swift 中最惯用的是编写一个新的字符串初始值设定项。
像这样:
extension String {
public init(point: [Int]) {
assert(condition: point.count == 3)
let r = "x=\(point[0]) y=\(point[1]) z=(point[2])"
self.init(stringLiteral: r) // what should I write here ?? This feels clumsy ?
}
这个 init
的结尾应该是什么?我无法分配给 self
,也没有其他明显的初始化可以调用。
首先,字符串插值行中缺少一个反斜杠。
只需调用 self.init
并以 r
作为参数。从技术上讲,它是一个 便利初始化程序 。
extension String {
public init(point: [Int]) {
assert(point.count == 3)
let r = "x=\(point[0]) y=\(point[1]) z=\(point[2])"
self.init(r)
}
}