fre*_*low 4 sorting scala position traits
不幸的是,scala.util.parsing.input.Position没有延伸Ordering[Position].
要ListBuffer根据位置对错误进行排序,请使用以下代码:
semanticErrors.sortBy(_.pos)(new Ordering[Position] {
def compare(x: Position, y: Position): Int = x.line - y.line
}).toList
Run Code Online (Sandbox Code Playgroud)
我相信这可以做得更优雅.但是怎么样?例如,我注意到了Position工具<.是否有一个通用的包装器将支持的内容<转换为Ordering?
有趣的是,转换到List第一个时,这似乎要容易得多:
semanticErrors.toList.sort((a, b) => a.pos < b.pos)
Run Code Online (Sandbox Code Playgroud)
但这可能不是最有效的解决方案.一个就地的ListBuffer理想选择.
您可以ListBuffer使用以下sortWith方法对a 进行排序:
semanticErrors.sortWith(_.pos < _.pos)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1306 次 |
| 最近记录: |