> 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