[swift-users] Why can't Swift instance methods call class methods without qualification?
David Sweeris
davesweeris at mac.com
Thu Jun 30 21:46:51 CDT 2016
I'm pretty sure you can have instance and static methods with the same name. Requiring `Type.foo()` instead of just `foo()` would tell the compiler which one you want.
- Dave Sweeris
> On Jun 30, 2016, at 21:01, Rick Mann via swift-users <swift-users at swift.org> wrote:
>
>
>> On Jun 30, 2016, at 18:47 , zh ao <owenzx at gmail.com> wrote:
>>
>> Just a choice made by the language designers to distinguish the call at the call site.
>>
>> You should be aware of using static methods as it may change static variables, which affects all instances of that class. Normally I think static methods is designed to use outside the class instance, if you have to use it inside its instance method. You may need to rethink the pattern you do.
>
> I think of static methods as applying to all instances, and so code them to "behave properly" no matter how they're called (since I can't really control who calls it, unless it's my own class). Since it's implicitly obvious (to me) that I mean "this class" when I call one, I find it a bit tedious qualify the call with the class name.
>
> It's fine, in the end, but I was curious why it was like this, and if there was a more obvious reason why it needed the qualification.
>
>>
>> Zhaoxin
>>
>> On Fri, Jul 1, 2016 at 8:59 AM, Rick Mann via swift-users <swift-users at swift.org> wrote:
>> Why can my instance methods not call class methods without the class specifier?
>>
>> class MyClass
>> {
>> func
>> foo()
>> {
>> classMethod()
>> }
>>
>> class
>> func
>> classMethod()
>> {
>> }
>> }
>>
>> Why do I have to call MyClass.classMethod()? Just a choice made by the language designers to distinguish the call at the call site? I like C++'s way of treating all static methods as directly available to the instance.
>>
>> --
>> Rick Mann
>> rmann at latencyzero.com
>>
>>
>> _______________________________________________
>> swift-users mailing list
>> swift-users at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-users
>
>
> --
> Rick Mann
> rmann at latencyzero.com
>
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
More information about the swift-users
mailing list