[swift-evolution] Proposal: Allow Getters and Setters to Throw
Morten Bek Ditlevsen
bek at termestrup.dk
Sun Dec 6 15:04:15 CST 2015
+1 from here too!
søn. 6. dec. 2015 kl. 21.43 skrev Ilya Belenkiy via swift-evolution <
swift-evolution at swift.org>:
> +1
>
> On Sat, Dec 5, 2015 at 10:17 PM Matthew Johnson via swift-evolution <
> swift-evolution at swift.org> wrote:
>
>> +1 to this. Subscripts should also be able to throw and currently cannot.
>>
>>
>> On Dec 5, 2015, at 9:08 PM, Nikolai Vazquez via swift-evolution <
>> swift-evolution at swift.org> wrote:
>>
>> One of the aspects of Swift that I like is computed properties for
>> structures and classes. It allows for adding logic when obtaining values or
>> for having the returned value be dependent on another.
>>
>> As of the `ErrorType` protocol introduction in Swift 2, we can throw
>> errors when it comes to functions and initializers. However, this does not
>> apply to getters and setters.
>>
>> ```swift
>> struct File<Data> {
>> var contents: Data {
>> get throws { ... }
>> set throws { ... }
>> }
>> }
>> ```
>>
>> A better example would be getting and setting the current working
>> directory of the process:
>>
>> ```swift
>> import Foundation
>>
>> extension Process {
>> static var workingDirectory: String {
>> get {
>> let fileManager = NSFileManager.defaultManager()
>> return fileManager.currentDirectoryPath
>> }
>> set throws {
>> let fileManager = NSFileManager.defaultManager()
>> guard fileManager.changeCurrentDirectoryPath(newValue) else {
>> throw Error("...")
>> }
>> }
>> }
>> }
>>
>>
>>
>> ```
>>
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151206/47ab4879/attachment.html>
More information about the swift-evolution
mailing list