作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好:)
我正在尝试构建一个自定义类型(结构或类,任何一个都适合),其值可以在我需要时隐式转换为 String
。
这是我正在寻找的示例:
public struct IKString {
private var internalValue: String
public init(_ value: String) {
internalValue = value
}
}
...
let test = IKString("Hello, world!")
myUILabel.text = test // This fails but I'm looking for a way to make it compile
这在 Swift 中可能吗?
最佳答案
class C: CustomStringConvertible {
let property1: Int;
init(i: Int) {
property1 = i
}
var property2: ()->() = { print("some computed property") }
var description: String {
return "instance of this class C has two properties: property1: \(property1) and property2: \(property2) whith type \(property2.dynamicType)"
}
}
let c = C(i: 100)
let s: String = c.description
print(s) // instance of this class C has two properties: property1: 100 and property2: (Function) whith type () -> ()
看见了
print(c)
给你同样的结果!
和
var text: String = ""
print(c, toStream: &text)
print(text)
将文本设置为相同的值。顺便说一下
print("\(c.property2), \(c.property2())")
// prints two lines
/*
some computed property
(Function), ()
*/
更新扩展字符串怎么样:IKString { ... } ??
struct Localisation {}
protocol IKString {
mutating func foo()
init(s: String, l: Localisation)
}
extension String: IKString {
init(s: String, l: Localisation) {
// some code
self = s
foo()
}
mutating func foo() {
self = self.uppercaseString
}
}
let s2 = String(s: "blabla",l: Localisation())
print(s2) // BLABLA
关于swift - 使结构或类可隐式转换为 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34698346/
我是一名优秀的程序员,十分优秀!