Create a Hash: Difference between revisions

From Rosetta Code
Content added Content deleted
m (fix redirect)
 
(19 intermediate revisions by 12 users not shown)
Line 1: Line 1:
#REDIRECT [[Associative array/Creation]]
{{task}}

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);


==[[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'

Latest revision as of 19:09, 9 March 2013