Special Methods
| String representation | Object copy | Value equality | Object comparison | Hash code | Object ID | ||
|---|---|---|---|---|---|---|---|
| Human-readable | Source-compatible | ||||||
| ABAP Objects | |||||||
| C++ (STL) | x == y | ||||||
| C# | x.ToString | x.Clone | x.Equals(y) | x.CompareTo(y) | x.GetHashCode | ||
| Java | x.toString | x.clone | x.equals(y) | x.compareTo(y) | x.hashCode | System.identityHashCode(x) | |
| JavaScript | x.toString | ||||||
| D | x.toString or std.conv.to!string(x) |
x.stringof | x == y | x.toHash | |||
| Objective-C (Cocoa) | |||||||
| Smalltalk | x displayString | x printString | x copy | x = y | x hash | x identityHash | |
| Python | str(x) | repr(x) | copy.copy(x) | x == y | cmp(x, y) | hash(x) | id(x) |
| Visual Basic .NET | x.ToString | x.Clone | x.Equals(y) | x.CompareTo(y) | x.GetHashCode | ||
| Eiffel | x.out | x.twin | x.is_equal(y) | When x is COMPARABLE, one can simply do x < y | When x is HASHABLE, one can simply do x.hash_code | When x is IDENTIFIED, one can simply do x.object_id | |
| PHP | sprintf("%s", x) | clone x | x == y | spl_object_hash(x) | |||
| Perl | "$x" | Data::Dumper->Dump(,) | Storable::dclone($x) | Scalar::Util::refaddr( $x ) | |||
| Perl 6 | ~x | x.perl | x.clone | x eqv y | x cmp y | x.WHICH | |
| Ruby | x.to_s | x.inspect | x.dup or x.clone |
x == y or x.eql?(y) |
x <=> y | x.hash | x.object_id |
| Windows PowerShell | x.ToString | x.Clone | x.Equals(y) | x.CompareTo(y) | x.GetHashCode | ||
| OCaml | Oo.copy x | x = y | Hashtbl.hash x | Oo.id x | |||
| F# | string x or x.ToString or sprintf "%O" x | sprintf "%A" x | x.Clone | x = y or x.Equals(y) | compare x y or x.CompareTo(y) | hash x or x.GetHashCode | |
Read more about this topic: Comparison Of Programming Languages (object-oriented Programming)
Famous quotes containing the words special and/or methods:
“I have the handicap of being born with a special language to which I alone have the key.”
—Gustave Flaubert (18211880)
“The comparison between Coleridge and Johnson is obvious in so far as each held sway chiefly by the power of his tongue. The difference between their methods is so marked that it is tempting, but also unnecessary, to judge one to be inferior to the other. Johnson was robust, combative, and concrete; Coleridge was the opposite. The contrast was perhaps in his mind when he said of Johnson: his bow-wow manner must have had a good deal to do with the effect produced.”
—Virginia Woolf (18821941)