상황을 만날 때 자바 스크립트로 foreach
할 수 있습니다. 함수가 있으면 편리 할 것이라고 항상 생각 합니다. foreach는 아래에 설명 된 기능을 의미합니다.
def foreach(fn,iterable):
for x in iterable:
fn(x)
그들은 모든 요소에서 그것을하고 무언가를 산출하거나 반환하지 않았습니다. 내장 기능이어야하고 순수한 파이썬으로 작성하는 것보다 빠르다고 생각하지만 목록에서 찾지 못했습니다. 방금 다른 이름을 불렀거나 여기서 요점을 놓치셨습니까?
어쩌면 내가 잘못했을 수도 있습니다. 파이썬에서 함수를 호출하면 비용이 많이 들며, 분명히 예제에는 좋지 않습니다. 함수는 out 루프가 아니라 많은 파이썬 코드 제안에서 이미 언급 한 것처럼 몸통에서 루프를 수행해야합니다.
def fn(*args):
for x in args:
dosomething
그러나 나는 foreach가 여전히 두 가지 사실을 기반으로 환영한다고 생각했습니다.
- 일반적인 경우 사람들은 성능에 신경 쓰지 않습니다.
- 때로는 API가 반복 가능한 객체를 허용하지 않아 소스를 다시 작성할 수 없습니다.
for
을위한 것입니다.
list.each(func)
보다 깨끗 for item in list: func(item)
합니다. 문제는 파이썬 이 단순히 내장 기능을 확장 하고 (균일하고 읽을 수있는) 목록 이해력 map()
과 같은 기능적 즐겨 찾기를 대체하는 훌륭한 작업을 수행 했으며 특정 기능 이 그것에 맞지 않을 수 있다는 것입니다. filter()
for
if
.each()
sum(0 for _ in map(f, seq))
읽을 수있는 해결 방법입니다.
for
루프를 사용하는 것의 문제점은 무엇입니까 ?