У меня есть следующий метод:
def generateAssociatedImages : List[ImageFileEntry] = {
if ( this.page > 1 && this.page < this.fileEntry.pageCount ) {
List( copyWithPage( this.page - 1 ), copyWithPage( this.page + 1 ) )
} else {
if ( page == 1 && page != file.fileEntry.pageCount ) {
List( copyWithPage( this.page + 1 ) )
} else {
List( copyWithPage( this.page - 1 ) )
}
}
}
Но этот выглядит слишком похоже на Java (если бы я использовал Ruby, я бы сделал переключатель / регистр для диапазона, а затем сделал бы другие сравнения). Есть ли более функциональный способ сделать это в Scala?
Поведение довольно простое:
- , если ввод - страница 1, а всего страниц - 3, вывод - [2]
- , если ввод - страница 2, а всего страниц - 3, вывод - [1,3]
- если ввод - страница 3, а всего страниц - 3, вывод - [2]
Я ищу идиоматическое решение, я все еще новичок в Scala.
Было бы замечательно, если бы я мог сделать что-то вроде:
( 1 until 3 ).hasNext( 2 )