2
자바에서 다음과 같은 코드를 올바른 기능 방식으로 수행하는 가장 좋은 방법은 무엇입니까? 이상 물론,이 필수적 방법으로 스칼라에 직접 번역 될 수스칼라 모범 사례 : 2D 데이터 매핑
LinkedList<Item> itemsInRange = new LinkedList<Item>();
for (int y = 0; y < height(); y++) {
for (int x = 0; x < width(); x++) {
Item it = myMap.getItemAt(cy + y, cx + x);
if (it != null)
itemsInRange.add(it);
}
}
// iterate over itemsInRange later
:
val itemsInRange = new ListBuffer[Item]
for (y <- 0 until height) {
for (x <- 0 until width) {
val it = tileMap.getItemAt(cy + x, cx + x)
if (!it.isEmpty)
itemsInRange.append(it.get)
}
}
하지만 적절한 기능적인 방법으로 그것을하고 싶습니다.
일종의 2D 범위보다 map
조작이 있어야한다고 가정합니다. 이상적으로 map
은 x
및 y
을 입력 매개 변수로 사용하고 Option[Item]
을 출력하는 함수를 실행합니다. 그 후 Iterable[Option[Item]]
과 flatten
과 같은 것을 얻게되면 Iterable[Item]
이됩니다. 내가 옳다면, 퍼즐의 유일한 누락 된 부분은 어떤면에서 2D 범위에서지도 작업을하는 것입니다.
고마워요! 정확히 내가 뭘 찾고있는 것 같아! 이 '수익률'물건 compherensions는 매우 유망 해 보인다! – GreyCat