Erlang Central

Difference between revisions of "Atom"

From ErlangCentral Wiki

 
Line 6: Line 6:
 
This would mean that you can declare a variable of type operation. It can only have one of the following values:
 
This would mean that you can declare a variable of type operation. It can only have one of the following values:
  
{| border="1" cellspacing="1" cellpadding="5" align="center"
+
{| border="0" cellspacing="1" cellpadding="5" align="left"
 
! Enumeration
 
! Enumeration
 
! Value
 
! Value

Revision as of 08:24, 2 September 2006

Most languages, including C, C++ and Pascal/Delphi one could write something like this:

enum operations {ADD, SUBTRACT, MULTIPLY, DIVIDE };

This would mean that you can declare a variable of type operation. It can only have one of the following values:

Enumeration Value
ADD 0
SUBTRACT 1
MULTIPLY 2
DIVIDE 3

Note that each instance of an operation will have a value of between 0 and 3. This is what makes an enumeration special. It has a value. In reality the compiler only uses the numeric values for constants. You can usually (although I don't encourage it) use the numeric value instead.

In Erlang, an atom is exactly the same - a named constant. It does not have an explicit value, as an enumeration does. You cannot substitute a numeric value for a symbolic one - they are explicitly differnt. The atom ok is different from the atom OK (The one is in lowercase, the other in uppercase).