Рассмотрим следующее:
struct MiniString {
private(set) var value: String
init(_ value: String) {
if value.count < 17 {
self.value = value
} else {
selfDeleteSomehow()
}
}
}
В другом месте это может быть реализовано так:
var ms: MiniString? = MiniString("This string is too long to be accepted")
print(ms) // prints 'nil'
Контекст: мой конкретный вариант использования для объявления функции в протоколе, который будет возвращать Double
в диапазоне от 0,0 до 1,0, но не выше или ниже, что-то вроде:
protocol DoubleBetweenZeroAndOneProtocol {
func getResult() -> DoubleBetweenZeroAndOne
}