【发布时间】:2011-11-02 00:06:43
【问题描述】:
我有以下方法:
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,我会在一个范围上做一个 switch/case,然后做其他比较)。在 Scala 中有没有更实用的方法来做到这一点?
行为很简单:
- 如果输入为第 1 页且总页数为 3,则输出为 [2]
- 如果输入为第 2 页,总页数为 3,则输出为 [1,3]
- 如果输入为第 3 页且总页数为 3,则输出为 [2]
我正在寻找一个惯用的解决方案,我还是 Scala 的新手。
如果我能做这样的事情那就太好了:
( 1 until 3 ).hasNext( 2 )
【问题讨论】:
-
如果只有一页怎么办?在您的 sn-p 中,它似乎回答 [0](根据您的符号)它有效吗?
-
在此之前还有另一种方法,如果只有一个页面,则不会尝试生成图像。