in C#,
foreach (var item in container) {
item.DoSomething();
}
in js,
for(var property in obj) {
var item = obj[property];
item.doSomething();
}
PHP가 출동하면 어떨까?
meanwhile in PHP,
foreach($container as $item) {
$item.doSomething();
}
아오 이색휘는 왜 순서가 반대여...
하지만 여기에도 나름의 장점이 있으니...
foreach($container as $key=>$value) {
echo $key . ': ' . $value.toString();
}
이런 무시무시한 문법이 가능하다.
그러면 이들 중에서 C#이 제일 나쁜가하면 그건 아니다. 취존이겠지만 C#이 가장 좋아 보인다.
일단 PHP 문법은 영어 어순에 안 맞는다. For each item in container라고 하지 For each container xxx라고는 안 한다. (For each
다음으로 index가 필요한 경우에는 foreach가 아니라 그냥 for를 쓰면 된다. foreach를 그냥 유지하면서 index도 쓰고 싶으면 변수를 하나 선언하고 foreach 안에서 increment/decrement하면 된다. Scope 때문에 귀찮아질 수도 있지만.
마지막으로 dictionary인 경우에는 key 필요 여부에 따라 달리 쓰면 된다.
var output="";
foreach(var key in dic.Keys) {
output+=key + ": "; // key1: value1, ...
output+=dic[keys];
}
foreach(var value in dic.Values) {
output+=value;
}
C++와 비교해도, C#은 key set을 바로 얻을 수 있어서 좋다.
js의 for는 그것 나름으로는 괜찮은 것 같지만 C#을 먼저 배운 사람에게는 가장 헷갈리는 것 종류가 될 것 같다.
게다가 for loop을 돌리는 대상이 Array 또는 객체 모두가 되기 때문에 혼란이 가중된다. 즉 object인줄 알았는데 array인 경우 기대했던 값이 안 나오고 죄다 undefined가 뜬다든가...
No comments:
Post a Comment