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. 設定具體的數字範圍jquery.mask
- 2. 範圍seekbar設置範圍
- 3. scala範圍長
- 4. Java的int範圍?
- 5. jquery設置範圍
- 6. 設置此範圍
- 7. 爲海龜設置的取值範圍
- 8. Scala:對象範圍
- 9. 設置位置範圍
- 10. array_map的設置範圍php
- 11. 如何將HighCharts dataGroup設置爲範圍/時間範圍?
- 12. 清除範圍(設置範圍爲零)延遲段樹修改
- 13. 排序的具體範圍VBA
- 14. 正則表達式的具體範圍
- 15. Aspose.Cells - 爲範圍設置邊框
- 16. 可以爲jquery.ajaxSetup()設置範圍嗎?
- 17. 爲DelayedJob設置租戶範圍
- 18. 將DBContext範圍設置爲IService
- 19. 爲XYAreaChart設置「自動」範圍
- 20. 使用numpy將範圍設置爲零
- 21. 設置範圍爲排序功能
- 22. 將範圍設置爲最後一行
- 23. 將範圍設置爲公式,然後設置爲值
- 24. xCode Tableview設置範圍
- 25. IdentityServer4設置範圍祕密
- 26. 設置範圍屬性
- 27. Excel 2011 VBA - 設置範圍
- 28. 設置選擇範圍
- 29. Java JVM範圍設置
- 30. 設置iBeacon發射範圍
你的意思是你想在myInt上添加驗證? –
我相信有一種方法可以通過編譯時,在[Shapless](https://github.com/milessabin/shapeless)中進行類型級編程來完成。不幸的是,我並不熟悉知道如何去做 –