Create a Hash: Difference between revisions

From Rosetta Code
Content added Content deleted
Line 48: Line 48:
@hash->{'key1', 'three'} = ('val1', -238.83);
@hash->{'key1', 'three'} = ('val1', -238.83);

==[[C#]]==

Defining a Hash
//HashTable is part of System.Collections
using System.Collections;
HashTable h = new HashTable();

Adding values
h.add( "key1" , "foo" );
h.add( "key2" , "bar" );

or

h["key1"] = "foo";
h["key2"] = "bar";


==[[Ruby]]==
==[[Ruby]]==

Revision as of 21:21, 22 January 2007

Task
Create a Hash
You are encouraged to solve this task according to the task description, using any language you may know.

Create a Hash object that links keys to values and returns a pre-specified element when a key is unknown.

Perl

Interpeter: Perl

Defining a Hash

# using => key does not need to be quoted unless it contains special chars
my %hash = (
  key1 => 'val1',
  'key-2' => 2,
  three => -238.83,
  4 => 'val3',
);

# using , both key and value need to be quoted if containing something non-numeric in nature
my %hash = (
  'key1', 'val1',
  'key-2', 2,
  'three', -238.83,
  4, 'val3',
);

Defining a HashRef

my $hashref = {
  key1 => 'val1',
  'key-2' => 2,
  three => -238.83,
  4 => 'val3',
}

Using a Hash

print $hash{'key1'};

$hash{'key1'} = 'val1';

@hash{'key1', 'three'} = ('val1', -238.83);

Using a HashRef

print $hash->{'key1'};

$hash->{'key1'} = 'val1';

@hash->{'key1', 'three'} = ('val1', -238.83);

C#

Defining a Hash

 //HashTable is part of System.Collections
 using System.Collections;
 
 HashTable h = new HashTable();

Adding values

 h.add( "key1" , "foo" );
 h.add( "key2" , "bar" );

or

 h["key1"] = "foo";
 h["key2"] = "bar";

Ruby

 #a hash object that returns nil for unknown keys
 hash={}
 hash[666]='devil'
 hash[777]  # => nil
 hash[666]  # => 'devil'
 #a hash object that returns 'unknown key' for unknown keys
 hash=Hash.new('unknown key')
 hash[666]='devil'
 hash[777]  # => 'unknown key'
 hash[666]  # => 'devil'
 #a hash object that returns "unknown key #{key}" for unknown keys
 hash=Hash.new{|h,k|h[k]="unknown key #{k}"}
 hash[666]='devil'
 hash[777]  # => 'unknown key 777'
 hash[666]  # => 'devil'