Reorganize and add strings
This commit is contained in:
parent
cf63aa0ee6
commit
6a7392eff4
5 changed files with 79 additions and 31 deletions
26
content/types/range.md
Normal file
26
content/types/range.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
title: Range Types
|
||||
---
|
||||
# Range Types
|
||||
|
||||
Range types that guarantee a value will always be within a given range also exist. Whenever possible, out-of-bounds values will fail at compile-time, otherwise they will fail at run-time.
|
||||
|
||||
``` nimrod
|
||||
type
|
||||
TwoDigits* = range[10..99]
|
||||
|
||||
let a = 2
|
||||
var b: TwoDigits = 99 + a # Fails at run-time
|
||||
let c: TwoDigits = 100 # Fails at compile-time
|
||||
```
|
||||
|
||||
Also note that range types also work on any other ordinal type, so a range over an enum is also valid:
|
||||
|
||||
``` nimrod
|
||||
type
|
||||
MyEnum = enum
|
||||
A, B, C, D, E
|
||||
BToD = range[B..D]
|
||||
|
||||
let value: BToD = C
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue