> On Jun 30, 2016, at 18:47 , zh ao <owe...@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@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
> rm...@latencyzero.com
> 
> 
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
> 


-- 
Rick Mann
rm...@latencyzero.com


_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to