doc: add info about _ separator in literals (#5823)
parent
c3ec5323f0
commit
c3bdacbf04
doc
vlib/builtin
15
doc/docs.md
15
doc/docs.md
|
@ -388,18 +388,22 @@ println(s) // "hello\nworld"
|
||||||
```v
|
```v
|
||||||
a := 123
|
a := 123
|
||||||
```
|
```
|
||||||
|
|
||||||
This will assign the value of 123 to `a`. By default `a` will have the
|
This will assign the value of 123 to `a`. By default `a` will have the
|
||||||
type `int`.
|
type `int`.
|
||||||
|
|
||||||
You can also use hexadecimal notation for integer literals:
|
You can also use hexadecimal notation for integer literals:
|
||||||
|
|
||||||
```v
|
```v
|
||||||
a := 0x7B
|
a := 0x7B
|
||||||
```
|
```
|
||||||
... or binary notation for integer literals:
|
... or binary notation for integer literals:
|
||||||
|
|
||||||
```v
|
```v
|
||||||
a := 0b01111011
|
a := 0b01111011
|
||||||
```
|
```
|
||||||
... or octal notation for specifying integer literals:
|
... or octal notation for specifying integer literals:
|
||||||
|
|
||||||
```v
|
```v
|
||||||
a := 0o173
|
a := 0o173
|
||||||
```
|
```
|
||||||
|
@ -407,8 +411,18 @@ a := 0o173
|
||||||
All of these will assign the same value 123 to `a`. `a` will have the
|
All of these will assign the same value 123 to `a`. `a` will have the
|
||||||
type `int` no matter what notation you have used for the integer literal.
|
type `int` no matter what notation you have used for the integer literal.
|
||||||
|
|
||||||
|
V also supports writing numbers with `_` as separator:
|
||||||
|
|
||||||
|
```v
|
||||||
|
num := 1_000_000 // same as 1000000
|
||||||
|
three := 0b0_11 // same as 0b11
|
||||||
|
float_num := 3_122.55 // same as 3122.55
|
||||||
|
hexa := 0xF_F // same as 255
|
||||||
|
oct := 0o17_3 // same as 0o173
|
||||||
|
```
|
||||||
|
|
||||||
If you want a different type of integer, you can use casting:
|
If you want a different type of integer, you can use casting:
|
||||||
|
|
||||||
```v
|
```v
|
||||||
a := i64(123)
|
a := i64(123)
|
||||||
b := byte(42)
|
b := byte(42)
|
||||||
|
@ -416,6 +430,7 @@ c := i16(12345)
|
||||||
```
|
```
|
||||||
|
|
||||||
Assigning floating point numbers works the same way:
|
Assigning floating point numbers works the same way:
|
||||||
|
|
||||||
```v
|
```v
|
||||||
f := 1.0
|
f := 1.0
|
||||||
f1 := f64(3.14)
|
f1 := f64(3.14)
|
||||||
|
|
|
@ -144,6 +144,33 @@ fn test_oct() {
|
||||||
assert x9 == 0
|
assert x9 == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn test_num_separator() {
|
||||||
|
// int
|
||||||
|
assert 100_000_0 == 1000000
|
||||||
|
assert -2_23_4_6 == -22346
|
||||||
|
assert 230_ == 230
|
||||||
|
|
||||||
|
// bin
|
||||||
|
assert 0b0_11 == 3
|
||||||
|
assert -0b0_100 == -4
|
||||||
|
assert 0b010_ == 2
|
||||||
|
|
||||||
|
// oct
|
||||||
|
assert 0o_173 == 123
|
||||||
|
assert -0o_175 == -125
|
||||||
|
assert -0o175_ == -125
|
||||||
|
|
||||||
|
// hex
|
||||||
|
assert 0x_FF == 255
|
||||||
|
assert 0xFF_ == 255
|
||||||
|
assert 0xF_F == 255
|
||||||
|
|
||||||
|
// f32 or f64
|
||||||
|
assert 312_2.55 == 3122.55
|
||||||
|
assert 312_2.55 == 3122.55
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
fn test_int_decl() {
|
fn test_int_decl() {
|
||||||
x1 := 0
|
x1 := 0
|
||||||
x2 := 1333
|
x2 := 1333
|
||||||
|
|
Loading…
Reference in New Issue