[swift-evolution] [Idea] Extending syntax for `extension`

Saagar Jha saagar at saagarjha.com
Mon Dec 5 16:04:58 CST 2016


How exactly would this work? Would it restrict the extension to only the scope it’s defined in?

Saagar Jha



> On Dec 5, 2016, at 1:48 PM, Braeden Profile via swift-evolution <swift-evolution at swift.org> wrote:
> 
> I really enjoy having the ability to write and nesting my code at the appropriate indentation level in my file.  Extensions are fabulous, but I wonder—solely for readability/style sake, could we allow you to properly namespace your extensions?  Though I don’t know the implementation cost of this, I think it could be useful to be able to write this:
> 
> class MathEvaluator
> {
> 	struct Number
> 	{
> 		let value: Double
> 	}
> 	
> 	struct Operation
> 	{
> 		let numbers: (Number, Number)
> 		let transform: (Double, Double) -> Double
> 	}
> 	
> 	extension Number
> 	{
> 		var factors: [Double]
> 		{
> 			// Calculate and return the factors
> 		}
> 	}
> }
> 
> …which would be completely equivalent to:
> 
> class MathEvaluator
> {
> 	struct Number
> 	{
> 		let value: Double
> 	}
> 	
> 	struct Operation
> 	{
> 		let numbers: (Number, Number)
> 		let transform: (Double, Double) -> Double
> 	}
> }
> 	
> extension MathEvaluator.Number
> {
> 	var factors: [Double]
> 	{
> 		// Calculate and return the factors
> 	}
> }
> 
> This change is in the same ball park as this, proposed a week or two ago:
> 
> struct MathEvaluator.Number
> {
> 	let value: Double
> 	
> 	var factors: [Double]
> 	{
> 		// Calculate and return the factors
> 	}
> }
> _______________________________________________
> 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/20161205/6832fb8f/attachment.html>


More information about the swift-evolution mailing list