Since Julia doesn't have Python or C++ style classes, it would have to be
done in the ugly, error prone manner. :-)

In all seriousness, types in Julia are like C structs. Classes (in other
languages) are just structs with accociated functions, that have special
access to the members of the class (also known as single dispatch).

There are no special functions in Julia that belong to or have access to
type members. Instead, members are always accessed using dot notation.

Part of the reason for doing this is to enable multiple dispatch (which
none of Python, C++, or Fortran have), which allows functions to "belong
to" multiple types. Since there is not just one class that a function can
"belong to", functions don't have special access to type members.

It's a different style of programming. I would suggest trying it and see if
you like it or not. Many others, myself included, find multiple dispatch a
useful trade for Python/C++ style objects, but if you don't like it, there
are plenty of other languages available.

Cheers!
   Kevin

On Wednesday, May 7, 2014, Neal Becker <[email protected]> wrote:

> I've always used the following rule in languages such as python and c++
>
> If an object has state, use a class.  Otherwise use a function.
>
> In languages lacking classes (and objects) e.g., FORTRAN, state must be
> maintained outside of the object.  This is ugly and error prone.
>
> How is this addressed in julia?
>
>

Reply via email to