[swift-evolution] Changing postfix "self" to something clearer like "type"

Brandon Knope bknope at me.com
Tue Dec 15 10:19:19 CST 2015

One area of swift that is really not clear to me is when you want to use the type of a class, struct, enum, etc as a value. 

Metatyping is explained here: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Types.html#//apple_ref/doc/uid/TP40014097-CH31-XID_1022

let metatype: SomeClass.Type = SomeClass.self

Is there a reason why this isn't SomeClass.type? Everywhere in the document this is explained as returning the type yet it's using a postfix self to access the type. 

I propose changing the postfix self to something more obvious like "type"

Going back to the example:
let metatype: SomeClass.Type = SomeClass.type

Several reasons why I think this is better:
1. Postfix self is not obvious as an option as you never see a postfix self anywhere else 
2. "self" does not clearly explain that the type is being returned 
3. ObjC programmers are familiar with accessing the class type by sending the "class" method to the class type. In this case it needs to work on structs and enums, so a "type" method would make more sense. 
4. Instances have a dynamicType method. For consistency, classes, structs, etc., should have a type method

Any other suggestions would be welcome. 


Sent from my iPad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151215/8cbdfba3/attachment.html>

More information about the swift-evolution mailing list