¤Ü¤Á¤Ü¤Á»¶Êâ

¤¤¤í¤ó¤Ê¸À¸ì¤ÇÏ¢ÁÛÇÛÎó¤òÎóµó

ʸ»úÎóÁàºî¤ÎÈæ³Óɽ: Ruby, Python, JavaScript, Perl, C++¤¬ÌÌÇò¤«¤Ã¤¿¤Î¤Ç¥Þ¥Í¤·¤Æ¤ï¤«¤ëÈϰϤǤ¤¤í¤¤¤í¤ä¤Ã¤Æ¤ß¤¿¡¥

Ìܼ¡

Ruby

¥³¡¼¥É

hash = {
	"key1" => "value1",
	"key2" => "value2",
	"key3" => "value3"
}

hash.each() {|value, key|
	print value + " : " + key + "\n"
}

¼Â¹Ô·ë²Ì

key1 : value1
key2 : value2
key3 : value3

Ruby¤Ï¤¹¤Ù¤Æ¤¬¥ª¥Ö¥¸¥§¥¯¥È¤Ê¤Î¤Ç¡¤ÇÛÎó¤âArray¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤È¤¤¤¦¤³¤È¤Ë¤Ê¤Ã¤Æ¤ë¡¥¤Ç¡¤each¥á¥½¥Ã¥É¤Ë¥³¡¼¥É¥Ö¥í¥Ã¥¯¤ò°ú¿ô¤È¤·¤ÆÍ¿¤¨¤ë¤³¤È¤Ç¥¤¥Æ¥ì¡¼¥È¤Ç¤­¤ë¡¥³Ú¤·¤¤¡¥

Ìܼ¡¤Ø

PHP

¥³¡¼¥É

<?php
$hash = array(
	"key1" => "value1",
	"key2" => "value2",
	"key3" => "value3"
);

// ÉáÄÌ
foreach($hash as $key => $value) {
	print $key . " : " . $value . "\n";
}

// ÊÑ
array_walk($hash, create_function('$value, $key', '
	print $key . " : " . $value . "\n";
'));
?>

¼Â¹Ô·ë²Ì

key1 : value1
key2 : value2
key3 : value3

ÉáÄ̤Ïforeach¤Ç²ó¤¹¤±¤É¡¤array_walk¤Èƿ̾´Ø¿ô¤òºî¤ëcreate_function¤Ç½ñ¤¯¤³¤È¤â¤Ç¤­¤ë¡¥

Ìܼ¡¤Ø

JavaScript

¥³¡¼¥É

var hash = {
	"key1": "value1",
	"key2": "value2",
	"key3": "value3"
};

// ÉáÄÌ
for(var key in hash) {
	document.write(key + " : " + hash[key] + "\n");
}

// ÊÑ
Object.prototype.each = function(iterator) {
	for(var key in this) {
		if(this.hasOwnProperty(key)) iterator(this[key], key);
	}
};

hash.each(function(value, key) {
	document.write(key + " : " + value + "\n");
});

¼Â¹Ô·ë²Ì

key1 : value1
key2 : value2
key3 : value3

for in¹½Ê¸¤ò»È¤¦¤Î¤¬¤ï¤«¤ê¤ä¤¹¤¤¡¥JavaScript¤ÏÁ´¤Æ¤¬¥ª¥Ö¥¸¥§¥¯¥È¤ÇÏ¢ÁÛÇÛÎó¤ÏObject¥ª¥Ö¥¸¥§¥¯¥È¡Ê¤Ê¤ó¤«ÊѡˤʤΤÇprototype¤Ë¥á¥½¥Ã¥É¤ò¤¯¤Ã¤Ä¤±¤ì¤Ð¤É¤¦¤È¤Ç¤â½ñ¤±¤ë¡¥

Ìܼ¡¤Ø

Python

¥³¡¼¥É

hash = {
	"key1": "value1",
	"key2": "value2",
	"key3": "value3"
}

for key, value in hash.iteritems():
	print key + " : " + value

¼Â¹Ô·ë²Ì

key3 : value3
key2 : value2
key1 : value1

¤Ï¤¸¤á¤ÆPython½ñ¤¤¤Æ¤ß¤¿¡¥ÇÛÎ󥪥֥¸¥§¥¯¥È¤¬¥¤¥Æ¥ì¡¼¥¿¤òÊÖ¤·¤Æ¤¯¤ì¤ë´¶¤¸¡©

Ìܼ¡¤Ø

C++

¥³¡¼¥É

#include <iostream>
#include <map>

using namespace std;

void iteratorFunction(const pair<char *, char *> &value) {
	cout << value.first << " : " << value.second << endl;
}

int main() {
	map<char *, char *> array;
	
	array.insert(pair<char *, char *>("key1", "value1"));
	array.insert(pair<char *, char *>("key2", "value2"));
	array.insert(pair<char *, char *>("key3", "value3"));
	
	for_each(array.begin(), array.end(), iteratorFunction);
	
	return 0;
}

¼Â¹Ô·ë²Ì

key1 : value1
key2 : value2
key3 : value3

C++¤Ï¤è¤¯»È¤¦¤±¤É¡¤¤Ï¤¸¤á¤Æstd::map¤È¤«for_each¤È¤«»È¤Ã¤¿¡¥¥Æ¥ó¥×¥ì¡¼¥È»È¤¦¤È¤É¤¦¤·¤Æ¤â¸«¤¿Ìܤ¬¥´¥Á¥ã¥´¥Á¥ã¤Ë¤Ê¤ë¤±¤É¥Æ¥ó¥×¥ì¡¼¥È¤ÏÌÌÇò¤¤¤Î¤Ç»È¤¤¤³¤Ê¤·¤Æ¤ß¤¿¤¤¡¥

Ìܼ¡¤Ø

Java

¥³¡¼¥É

import java.util.Hashtable;
import java.util.Enumeration;

public class Hash {
	public static void main(String args[]) {
		Hashtable hash = new Hashtable();
		hash.put("key1", "value1");
		hash.put("key2", "value2");
		hash.put("key3", "value3");
		
		Enumeration e = hash.keys();
		while(e.hasMoreElements()) {
			String key = (String)e.nextElement();
			System.out.println(key + " : " + hash.get(key));
		}
	}
}

¼Â¹Ô·ë²Ì

key3 : value3
key2 : value2
key1 : value1

µ×¤·¤Ö¤ê¤ËJava¤Î¥³¡¼¥É¤ò½ñ¤¤¤¿¡¥¤È¤¤¤Ã¤Æ¤âÁ´Á³·Ð¸³¤Ê¤¤¤Î¤Ç¡¤¤Ï¤¸¤á¤Æjava.util.Hashtable»È¤Ã¤¿¤è¤¦¤Ê´¶¤¸¡¥

Ìܼ¡¤Ø

Objective-C + Cocoa

¥³¡¼¥É

#import <Foundation/Foundation.h>
#import <stdio.h>

int main() {
	id pool = [[NSAutoreleasePool alloc] init];
	
	id keys[] = {
		@"key1",
		@"key2",
		@"key3"
	};
	id values[] = {
		@"value1",
		@"value2",
		@"value3"
	};
	
	id hash = [[NSDictionary alloc] initWithObjects:values forKeys:keys count:3];
	
	id key;
	NSEnumerator *enumerator = [hash keyEnumerator];
	while((key = [enumerator nextObject]) != nil) {
		printf("%s : %s\n", [key cString], [[hash objectForKey:key] cString]);
	}
	
	[hash release];
	[pool release];
	
	return 0;
}

¼Â¹Ô·ë²Ì

key2 : value2
key3 : value3
key1 : value1

Objective-C¤ÏÊÙ¶¯Ãæ¤Ç¡¤¤Ï¤¸¤á¤ÆNSDictionary»È¤Ã¤¿¡¥¤Ê¤ó¤È¤Ê¤¯Java¤È»÷¤Æ¤ë¤Î¤ÏJava¤¬Objective-C¤Î±Æ¶Á¤ò¼õ¤±¤Æ¤¤¤ë¤«¤é¤È¤¦¤¤¤³¤È¤Ç¤¤¤¤¤Î¤«¤Ê¡©¡¥

Ìܼ¡¤Ø

¤Þ¤È¤á

¸Ä¿ÍŪ¤Ë¤ÏRuby¤¬°ìÈÖÈþ¤·¤¤¤È¤¤¤¦¤«¡¤¤ä¤ê¤¿¤¤¤³¤È¤¬Ä¾´¶Åª¤Ë¤ï¤«¤ë¥³¡¼¥É¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È»×¤¦¡¥¥¹¥¯¥ê¥×¥È·Ï¤ËÈæ¤Ù¤Æ¥³¥ó¥Ñ¥¤¥ë·Ï¤¬¤É¤¦¤·¤Æ¤â¥³¡¼¥É¤¬Ä¹¤¯¤Ê¤ë¤Î¤Ï»ÅÊý¤Ê¤¤¤Ë¤·¤Æ¤âJava¤¬¤¹¤Ã¤­¤ê¤·¤Æ¤¤¤ÆÎɤ¤¤È»×¤Ã¤¿¡¥Objective-C¤âMac OS X 10.5¤Ç¥¬¥Ù¡¼¥¸¥³¥ì¥¯¥¿¤¬ºÎÍѤµ¤ì¤ë¤é¤·¤¤¤Î¤Ç¤½¤·¤¿¤éNSAutoreleasePool¤È¤«release¤È¤«¤¬¤Ê¤¯¤Ê¤ë¤Î¤Ç¥·¥ó¥×¥ë¤Ë¤Ê¤ë¤È»×¤¦¡¥

2006/10/26 09:40 | Programming | ¥È¥é¥Ã¥¯¥Ð¥Ã¥¯(0) | ¥³¥á¥ó¥È(0)

¥Ú¡¼¥¸¤ÎÀèÆ¬¤Ø

¥È¥Ã¥×¥Ú¡¼¥¸¤Ø