Reorganize and add strings

This commit is contained in:
flaviut 2014-06-20 16:34:00 -04:00
commit 6a7392eff4
5 changed files with 79 additions and 31 deletions

26
content/types/range.md Normal file
View 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
```