doc: document the new `m[key] or{}`

pull/8197/head
Alexander Medvednikov 2021-01-19 06:11:18 +01:00 committed by GitHub
parent b74690cbec
commit b9870a4c8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 23 additions and 3 deletions

View File

@ -711,7 +711,7 @@ users.sort(a.name > b.name) // reverse sort by User.name string field
### Maps ### Maps
```v ```v
mut m := map[string]int{} // Only maps with string keys are allowed for now mut m := map[string]int{}
m['one'] = 1 m['one'] = 1
m['two'] = 2 m['two'] = 2
println(m['one']) // "1" println(m['one']) // "1"
@ -720,11 +720,31 @@ println('bad_key' in m) // Use `in` to detect whether such key exists
m.delete('two') m.delete('two')
// Short syntax // Short syntax
numbers := { numbers := {
'one': 1 1: 'two'
'two': 2 2: 'three'
} }
``` ```
If a key is not found, an empty value is returned by default:
```
val := m['bad_key']
println(val) // 0
```
However it's also possible to use an `or {}` block to handle missing keys:
```
val := m['bad_key'] or { println('key not found') }
```
The same optional check applies to arrays:
```
val := arr[large_index] or { println('out of bounds') }
```
## Module imports ## Module imports
For information about creating a module, see [Modules](#modules). For information about creating a module, see [Modules](#modules).