1
A
回答
2
只需添加require
或任何抛出异常,当它变得无效值解决您的问题。
class Test(val myInt :Int){
require(0 <= myInt && myInt <= 10)
}
3
给Refined一看。它允许您创建在编译时检查的范围类型。
你的范围应该是这样的:
type InMyRange = Interval.ClosedOpen[W.`0`.T, W.`10`.T]
,你可以像这样创建这种类型的值:
refineMV[InMyRange](0)
// Refined[Int, InMyRange] = 0
refineMV[InMyRange](9)
// Refined[Int, InMyRange] = 9
在错误情况:
refineMV[InMyRange](-1)
// Left predicate of (!(-1 < 0) && (-1 < 10)) failed: Predicate (-1 < 0) did not fail
refineMV[InMyRange](10)
// Right predicate of (!(10 < 0) && (10 < 10)) failed: Predicate failed: (10 < 10)
相关问题
- 1. 范围seekbar设置范围
- 2. 设置此范围
- 3. jquery设置范围
- 4. array_map的设置范围php
- 5. 如何将HighCharts dataGroup设置为范围/时间范围?
- 6. 清除范围(设置范围为零)延迟段树修改
- 7. 排序的具体范围VBA
- 8. 正则表达式的具体范围
- 9. 将DBContext范围设置为IService
- 10. 为XYAreaChart设置“自动”范围
- 11. Aspose.Cells - 为范围设置边框
- 12. 将范围设置为最后一行
- 13. 设置范围为排序功能
- 14. 将范围设置为公式,然后设置为值
- 15. IdentityServer4设置范围秘密
- 16. Server.ScriptTimeout设置全局范围?
- 17. 设置选择范围
- 18. 如何设置NSAttributedString范围?
- 19. 设置范围和GGPLOT2
- 20. Excel 2011 VBA - 设置范围
- 21. Java JVM范围设置
- 22. 作为字符串处理int范围
- 23. 命名范围与find_by_sql(具体示例)
- 24. Scala for-loop范围OutOfMemoryError
- 25. 范围设置为无,但范围内的单元格引用有效
- 26. Jquery:范围滑块:如何获取设置的范围值?
- 27. Int主键 - 超出int范围
- 28. 符号int范围混乱
- 29. 试图设置全局命名范围,但本地范围结束了设置?
- 30. SQL中的“设置rowcount”的范围
你的意思是你想在myInt上添加验证? –
我相信有一种方法可以通过编译时,在[Shapless](https://github.com/milessabin/shapeless)中进行类型级编程来完成。不幸的是,我并不熟悉知道如何去做 –