init - 用swift写一个String init
问题描述
在我的代码中,大小为 3 的数组[Int]
具有特殊含义。我想得到它的字符串表示。
在我看来,swift 中最惯用的方法是编写一个新的 String 初始化程序。
像这样的东西:
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
,并且没有其他明显的 init 我应该调用。
解决方案
首先,字符串插值行中缺少反斜杠。
只需调用作为参数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)
}
}
推荐阅读
- vue.js - 在 vue.js 中提供给 v-for 用于迭代的未闭合标签是否有效?
- java - Java在PC上运行ServerSocket
- python - Django:在验证之前处理表单字段
- python - 我遇到了关于 AttributeError 的问题
- python - Boto3 获取 Elasticache ARN
- c# - 如何在 ComboBox 中仅在表示行中设置粗体,而不是在整个下拉列表(WPF)中?
- android - 错误:程序类型已经存在:org.xmlpull.v1.XmlPullParser
- python - 如何获取深度学习 caffe python 中存在的点的 x,y 坐标
- javascript - 通过 key 在 mongoDB 中获取价值
- java - 是否可以使用并行流来执行这些循环?