Currently, the syntax for explicitly naming property setters is:

class Square {
  var sideLength: Double = 0.0

  var perimeter: Double {
    get {
      return sideLength * 4.0
    }
    set(newPerimeter) { // declares newPerimeter parameter, "let" not
allowed
      sideLength = newPerimeter / 4.0
    }
  }
}

Compare this with how extraction of associated values from enumerations
looks:

enum ServerResponse {
  case Failure(String)
  case Result(Int)
}
let response = ServerResponse.Result(404)

switch response {
case .Failure(let reason): // let is required here
  print(reason)
case .Result(let code):
  print(code)
}

For consistency, would it be better to allow/require:

class Square {
  var sideLength: Double = 0.0

  var perimeter: Double {
    get {
      return sideLength * 4.0
    }
    set(*let* newPerimeter) {  // declares newPerimeter parameter
        sideLength = newPerimeter / 4.0
    }
  }
}

The idea would apply to didSet{} and willSet{} too.

-- 
Ian Partridge
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to