mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
3724 lines
505 KiB
HTML
3724 lines
505 KiB
HTML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<!-- This file is generated by Nim. -->
|
|
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en" data-theme="auto">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>std/tables</title>
|
|
|
|
<!-- Google fonts -->
|
|
<link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
|
|
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
|
|
|
|
<!-- Favicon -->
|
|
<link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
|
|
<link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
|
|
|
|
<!-- CSS -->
|
|
<link rel="stylesheet" type="text/css" href="nimdoc.out.css?v=2.3.1">
|
|
|
|
<!-- JS -->
|
|
<script type="text/javascript" src="dochack.js?v=2.3.1"></script>
|
|
</head>
|
|
<body>
|
|
<div class="document" id="documentId">
|
|
<div class="container">
|
|
<h1 class="title">std/tables</h1>
|
|
<div class="row">
|
|
<div class="three columns">
|
|
<div class="theme-select-wrapper">
|
|
<label for="theme-select">Theme: </label>
|
|
<select id="theme-select" onchange="setTheme(this.value)">
|
|
<option value="auto">🌗 Match OS</option>
|
|
<option value="dark">🌑 Dark</option>
|
|
<option value="light">🌕 Light</option>
|
|
</select>
|
|
</div>
|
|
<div id="global-links">
|
|
<ul class="simple-boot">
|
|
<li><a href="manual.html">Manual</a></li>
|
|
<li><a href="lib.html">Standard library</a></li>
|
|
<li> <a id="indexLink" href="theindex.html">Index</a></li>
|
|
<li><a href="compiler/theindex.html">Compiler docs</a></li>
|
|
<li><a href="https://nim-lang.github.io/fusion/theindex.html">Fusion docs</a></li>
|
|
<li><a href="https://nim-lang.github.io/Nim/">devel</a>, <a href="https://nim-lang.org/documentation.html">stable</a></li>
|
|
</ul>
|
|
</div>
|
|
<div id="searchInputDiv">
|
|
Search: <input type="search" id="searchInput"
|
|
oninput="search()" />
|
|
</div>
|
|
|
|
<ul class="simple simple-toc" id="toc-list">
|
|
<li><a class="reference" id="basic-usage_toc" href="#basic-usage">Basic usage</a></li>
|
|
<ul class="simple"><li><a class="reference" id="basic-usage-table_toc" href="#basic-usage-table">Table</a></li>
|
|
<li><a class="reference" id="basic-usage-orderedtable_toc" href="#basic-usage-orderedtable">OrderedTable</a></li>
|
|
<li><a class="reference" id="basic-usage-counttable_toc" href="#basic-usage-counttable">CountTable</a></li>
|
|
<li><a class="reference" id="basic-usage-hashing_toc" href="#basic-usage-hashing">Hashing</a></li>
|
|
</ul><li><a class="reference" id="see-also_toc" href="#see-also">See also</a></li>
|
|
<li>
|
|
<a class="reference reference-toplevel" href="#6" id="56">Imports</a>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#7" id="57">Types</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<li><a class="reference" href="#CountTable" title="CountTable[A] = object">CountTable</a></li>
|
|
<li><a class="reference" href="#CountTableRef" title="CountTableRef[A] = ref CountTable[A]">CountTableRef</a></li>
|
|
<li><a class="reference" href="#OrderedTable" title="OrderedTable[A; B] = object">OrderedTable</a></li>
|
|
<li><a class="reference" href="#OrderedTableRef" title="OrderedTableRef[A; B] = ref OrderedTable[A, B]">OrderedTableRef</a></li>
|
|
<li><a class="reference" href="#Table" title="Table[A; B] = object">Table</a></li>
|
|
<li><a class="reference" href="#TableRef" title="TableRef[A; B] = ref Table[A, B]">TableRef</a></li>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#10" id="60">Consts</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<li><a class="reference" href="#defaultInitialSize" title="defaultInitialSize = 32">defaultInitialSize</a></li>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#12" id="62">Procs</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<ul class="simple nested-toc-section">$
|
|
<li><a class="reference" href="#%24%2COrderedTable%5BA%2CB%5D" title="`$`[A, B](t: OrderedTable[A, B]): string">`$`[A, B](t: OrderedTable[A, B]): string</a></li>
|
|
<li><a class="reference" href="#%24%2COrderedTableRef%5BA%2CB%5D" title="`$`[A, B](t: OrderedTableRef[A, B]): string">`$`[A, B](t: OrderedTableRef[A, B]): string</a></li>
|
|
<li><a class="reference" href="#%24%2CTable%5BA%2CB%5D" title="`$`[A, B](t: Table[A, B]): string">`$`[A, B](t: Table[A, B]): string</a></li>
|
|
<li><a class="reference" href="#%24%2CTableRef%5BA%2CB%5D" title="`$`[A, B](t: TableRef[A, B]): string">`$`[A, B](t: TableRef[A, B]): string</a></li>
|
|
<li><a class="reference" href="#%24%2CCountTable%5BA%5D" title="`$`[A](t: CountTable[A]): string">`$`[A](t: CountTable[A]): string</a></li>
|
|
<li><a class="reference" href="#%24%2CCountTableRef%5BA%5D" title="`$`[A](t: CountTableRef[A]): string">`$`[A](t: CountTableRef[A]): string</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">==
|
|
<li><a class="reference" href="#%3D%3D%2COrderedTable%5BA%2CB%5D%2COrderedTable%5BA%2CB%5D" title="`==`[A, B](s, t: OrderedTable[A, B]): bool">`==`[A, B](s, t: OrderedTable[A, B]): bool</a></li>
|
|
<li><a class="reference" href="#%3D%3D%2COrderedTableRef%5BA%2CB%5D%2COrderedTableRef%5BA%2CB%5D" title="`==`[A, B](s, t: OrderedTableRef[A, B]): bool">`==`[A, B](s, t: OrderedTableRef[A, B]): bool</a></li>
|
|
<li><a class="reference" href="#%3D%3D%2CTable%5BA%2CB%5D%2CTable%5BA%2CB%5D" title="`==`[A, B](s, t: Table[A, B]): bool">`==`[A, B](s, t: Table[A, B]): bool</a></li>
|
|
<li><a class="reference" href="#%3D%3D%2CTableRef%5BA%2CB%5D%2CTableRef%5BA%2CB%5D" title="`==`[A, B](s, t: TableRef[A, B]): bool">`==`[A, B](s, t: TableRef[A, B]): bool</a></li>
|
|
<li><a class="reference" href="#%3D%3D%2CCountTable%5BA%5D%2CCountTable%5BA%5D" title="`==`[A](s, t: CountTable[A]): bool">`==`[A](s, t: CountTable[A]): bool</a></li>
|
|
<li><a class="reference" href="#%3D%3D%2CCountTableRef%5BA%5D%2CCountTableRef%5BA%5D" title="`==`[A](s, t: CountTableRef[A]): bool">`==`[A](s, t: CountTableRef[A]): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">[]
|
|
<li><a class="reference" href="#%5B%5D%2COrderedTable%5BA%2CB%5D%2CA" title="`[]`[A, B](t: OrderedTable[A, B]; key: A): lent B">`[]`[A, B](t: OrderedTable[A, B]; key: A): lent B</a></li>
|
|
<li><a class="reference" href="#%5B%5D%2COrderedTableRef%5BA%2CB%5D%2CA" title="`[]`[A, B](t: OrderedTableRef[A, B]; key: A): var B">`[]`[A, B](t: OrderedTableRef[A, B]; key: A): var B</a></li>
|
|
<li><a class="reference" href="#%5B%5D%2CTable%5BA%2CB%5D%2CA" title="`[]`[A, B](t: Table[A, B]; key: A): lent B">`[]`[A, B](t: Table[A, B]; key: A): lent B</a></li>
|
|
<li><a class="reference" href="#%5B%5D%2CTableRef%5BA%2CB%5D%2CA" title="`[]`[A, B](t: TableRef[A, B]; key: A): var B">`[]`[A, B](t: TableRef[A, B]; key: A): var B</a></li>
|
|
<li><a class="reference" href="#%5B%5D%2COrderedTable%5BA%2CB%5D%2CA_2" title="`[]`[A, B](t: var OrderedTable[A, B]; key: A): var B">`[]`[A, B](t: var OrderedTable[A, B]; key: A): var B</a></li>
|
|
<li><a class="reference" href="#%5B%5D%2CTable%5BA%2CB%5D%2CA_2" title="`[]`[A, B](t: var Table[A, B]; key: A): var B">`[]`[A, B](t: var Table[A, B]; key: A): var B</a></li>
|
|
<li><a class="reference" href="#%5B%5D%2CCountTable%5BA%5D%2CA" title="`[]`[A](t: CountTable[A]; key: A): int">`[]`[A](t: CountTable[A]; key: A): int</a></li>
|
|
<li><a class="reference" href="#%5B%5D%2CCountTableRef%5BA%5D%2CA" title="`[]`[A](t: CountTableRef[A]; key: A): int">`[]`[A](t: CountTableRef[A]; key: A): int</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">[]=
|
|
<li><a class="reference" href="#%5B%5D%3D%2COrderedTableRef%5BA%2CB%5D%2CsinkA%2CsinkB" title="`[]=`[A, B](t: OrderedTableRef[A, B]; key: sink A; val: sink B)">`[]=`[A, B](t: OrderedTableRef[A, B]; key: sink A; val: sink B)</a></li>
|
|
<li><a class="reference" href="#%5B%5D%3D%2CTableRef%5BA%2CB%5D%2CsinkA%2CsinkB" title="`[]=`[A, B](t: TableRef[A, B]; key: sink A; val: sink B)">`[]=`[A, B](t: TableRef[A, B]; key: sink A; val: sink B)</a></li>
|
|
<li><a class="reference" href="#%5B%5D%3D%2COrderedTable%5BA%2CB%5D%2CsinkA%2CsinkB" title="`[]=`[A, B](t: var OrderedTable[A, B]; key: sink A; val: sink B)">`[]=`[A, B](t: var OrderedTable[A, B]; key: sink A; val: sink B)</a></li>
|
|
<li><a class="reference" href="#%5B%5D%3D%2CTable%5BA%2CB%5D%2CsinkA%2CsinkB" title="`[]=`[A, B](t: var Table[A, B]; key: sink A; val: sink B)">`[]=`[A, B](t: var Table[A, B]; key: sink A; val: sink B)</a></li>
|
|
<li><a class="reference" href="#%5B%5D%3D%2CCountTableRef%5BA%5D%2CA%2Cint" title="`[]=`[A](t: CountTableRef[A]; key: A; val: int)">`[]=`[A](t: CountTableRef[A]; key: A; val: int)</a></li>
|
|
<li><a class="reference" href="#%5B%5D%3D%2CCountTable%5BA%5D%2CA%2Cint" title="`[]=`[A](t: var CountTable[A]; key: A; val: int)">`[]=`[A](t: var CountTable[A]; key: A; val: int)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">add
|
|
<li><a class="reference" href="#add%2COrderedTableRef%5BA%2CB%5D%2CsinkA%2CsinkB" title="add[A, B](t: OrderedTableRef[A, B]; key: sink A; val: sink B)">add[A, B](t: OrderedTableRef[A, B]; key: sink A; val: sink B)</a></li>
|
|
<li><a class="reference" href="#add%2CTableRef%5BA%2CB%5D%2CsinkA%2CsinkB" title="add[A, B](t: TableRef[A, B]; key: sink A; val: sink B)">add[A, B](t: TableRef[A, B]; key: sink A; val: sink B)</a></li>
|
|
<li><a class="reference" href="#add%2COrderedTable%5BA%2CB%5D%2CsinkA%2CsinkB" title="add[A, B](t: var OrderedTable[A, B]; key: sink A; val: sink B)">add[A, B](t: var OrderedTable[A, B]; key: sink A; val: sink B)</a></li>
|
|
<li><a class="reference" href="#add%2CTable%5BA%2CB%5D%2CsinkA%2CsinkB" title="add[A, B](t: var Table[A, B]; key: sink A; val: sink B)">add[A, B](t: var Table[A, B]; key: sink A; val: sink B)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">clear
|
|
<li><a class="reference" href="#clear%2COrderedTableRef%5BA%2CB%5D" title="clear[A, B](t: OrderedTableRef[A, B])">clear[A, B](t: OrderedTableRef[A, B])</a></li>
|
|
<li><a class="reference" href="#clear%2CTableRef%5BA%2CB%5D" title="clear[A, B](t: TableRef[A, B])">clear[A, B](t: TableRef[A, B])</a></li>
|
|
<li><a class="reference" href="#clear%2COrderedTable%5BA%2CB%5D" title="clear[A, B](t: var OrderedTable[A, B])">clear[A, B](t: var OrderedTable[A, B])</a></li>
|
|
<li><a class="reference" href="#clear%2CTable%5BA%2CB%5D" title="clear[A, B](t: var Table[A, B])">clear[A, B](t: var Table[A, B])</a></li>
|
|
<li><a class="reference" href="#clear%2CCountTableRef%5BA%5D" title="clear[A](t: CountTableRef[A])">clear[A](t: CountTableRef[A])</a></li>
|
|
<li><a class="reference" href="#clear%2CCountTable%5BA%5D" title="clear[A](t: var CountTable[A])">clear[A](t: var CountTable[A])</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">contains
|
|
<li><a class="reference" href="#contains%2COrderedTable%5BA%2CB%5D%2CA" title="contains[A, B](t: OrderedTable[A, B]; key: A): bool">contains[A, B](t: OrderedTable[A, B]; key: A): bool</a></li>
|
|
<li><a class="reference" href="#contains%2COrderedTableRef%5BA%2CB%5D%2CA" title="contains[A, B](t: OrderedTableRef[A, B]; key: A): bool">contains[A, B](t: OrderedTableRef[A, B]; key: A): bool</a></li>
|
|
<li><a class="reference" href="#contains%2CTable%5BA%2CB%5D%2CA" title="contains[A, B](t: Table[A, B]; key: A): bool">contains[A, B](t: Table[A, B]; key: A): bool</a></li>
|
|
<li><a class="reference" href="#contains%2CTableRef%5BA%2CB%5D%2CA" title="contains[A, B](t: TableRef[A, B]; key: A): bool">contains[A, B](t: TableRef[A, B]; key: A): bool</a></li>
|
|
<li><a class="reference" href="#contains%2CCountTable%5BA%5D%2CA" title="contains[A](t: CountTable[A]; key: A): bool">contains[A](t: CountTable[A]; key: A): bool</a></li>
|
|
<li><a class="reference" href="#contains%2CCountTableRef%5BA%5D%2CA" title="contains[A](t: CountTableRef[A]; key: A): bool">contains[A](t: CountTableRef[A]; key: A): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">del
|
|
<li><a class="reference" href="#del%2COrderedTableRef%5BA%2CB%5D%2CA" title="del[A, B](t: OrderedTableRef[A, B]; key: A)">del[A, B](t: OrderedTableRef[A, B]; key: A)</a></li>
|
|
<li><a class="reference" href="#del%2CTableRef%5BA%2CB%5D%2CA" title="del[A, B](t: TableRef[A, B]; key: A)">del[A, B](t: TableRef[A, B]; key: A)</a></li>
|
|
<li><a class="reference" href="#del%2COrderedTable%5BA%2CB%5D%2CA" title="del[A, B](t: var OrderedTable[A, B]; key: A)">del[A, B](t: var OrderedTable[A, B]; key: A)</a></li>
|
|
<li><a class="reference" href="#del%2CTable%5BA%2CB%5D%2CA" title="del[A, B](t: var Table[A, B]; key: A)">del[A, B](t: var Table[A, B]; key: A)</a></li>
|
|
<li><a class="reference" href="#del%2CCountTableRef%5BA%5D%2CA" title="del[A](t: CountTableRef[A]; key: A)">del[A](t: CountTableRef[A]; key: A)</a></li>
|
|
<li><a class="reference" href="#del%2CCountTable%5BA%5D%2CA" title="del[A](t: var CountTable[A]; key: A)">del[A](t: var CountTable[A]; key: A)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">getOrDefault
|
|
<li><a class="reference" href="#getOrDefault%2COrderedTable%5BA%2CB%5D%2CA" title="getOrDefault[A, B](t: OrderedTable[A, B]; key: A): B">getOrDefault[A, B](t: OrderedTable[A, B]; key: A): B</a></li>
|
|
<li><a class="reference" href="#getOrDefault%2COrderedTable%5BA%2CB%5D%2CA%2CB" title="getOrDefault[A, B](t: OrderedTable[A, B]; key: A; def: B): B">getOrDefault[A, B](t: OrderedTable[A, B]; key: A; def: B): B</a></li>
|
|
<li><a class="reference" href="#getOrDefault%2COrderedTableRef%5BA%2CB%5D%2CA" title="getOrDefault[A, B](t: OrderedTableRef[A, B]; key: A): B">getOrDefault[A, B](t: OrderedTableRef[A, B]; key: A): B</a></li>
|
|
<li><a class="reference" href="#getOrDefault%2COrderedTableRef%5BA%2CB%5D%2CA%2CB" title="getOrDefault[A, B](t: OrderedTableRef[A, B]; key: A; def: B): B">getOrDefault[A, B](t: OrderedTableRef[A, B]; key: A; def: B): B</a></li>
|
|
<li><a class="reference" href="#getOrDefault%2CTable%5BA%2CB%5D%2CA" title="getOrDefault[A, B](t: Table[A, B]; key: A): B">getOrDefault[A, B](t: Table[A, B]; key: A): B</a></li>
|
|
<li><a class="reference" href="#getOrDefault%2CTable%5BA%2CB%5D%2CA%2CB" title="getOrDefault[A, B](t: Table[A, B]; key: A; def: B): B">getOrDefault[A, B](t: Table[A, B]; key: A; def: B): B</a></li>
|
|
<li><a class="reference" href="#getOrDefault%2CTableRef%5BA%2CB%5D%2CA" title="getOrDefault[A, B](t: TableRef[A, B]; key: A): B">getOrDefault[A, B](t: TableRef[A, B]; key: A): B</a></li>
|
|
<li><a class="reference" href="#getOrDefault%2CTableRef%5BA%2CB%5D%2CA%2CB" title="getOrDefault[A, B](t: TableRef[A, B]; key: A; def: B): B">getOrDefault[A, B](t: TableRef[A, B]; key: A; def: B): B</a></li>
|
|
<li><a class="reference" href="#getOrDefault%2CCountTable%5BA%5D%2CA%2Cint" title="getOrDefault[A](t: CountTable[A]; key: A; def: int = 0): int">getOrDefault[A](t: CountTable[A]; key: A; def: int = 0): int</a></li>
|
|
<li><a class="reference" href="#getOrDefault%2CCountTableRef%5BA%5D%2CA%2Cint" title="getOrDefault[A](t: CountTableRef[A]; key: A; def: int): int">getOrDefault[A](t: CountTableRef[A]; key: A; def: int): int</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">hash
|
|
<li><a class="reference" href="#hash%2COrderedTable%5BK%2CV%5D" title="hash[K, V](s: OrderedTable[K, V]): Hash">hash[K, V](s: OrderedTable[K, V]): Hash</a></li>
|
|
<li><a class="reference" href="#hash%2CTable%5BK%2CV%5D" title="hash[K, V](s: Table[K, V]): Hash">hash[K, V](s: Table[K, V]): Hash</a></li>
|
|
<li><a class="reference" href="#hash%2CCountTable%5BV%5D" title="hash[V](s: CountTable[V]): Hash">hash[V](s: CountTable[V]): Hash</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">hasKey
|
|
<li><a class="reference" href="#hasKey%2COrderedTable%5BA%2CB%5D%2CA" title="hasKey[A, B](t: OrderedTable[A, B]; key: A): bool">hasKey[A, B](t: OrderedTable[A, B]; key: A): bool</a></li>
|
|
<li><a class="reference" href="#hasKey%2COrderedTableRef%5BA%2CB%5D%2CA" title="hasKey[A, B](t: OrderedTableRef[A, B]; key: A): bool">hasKey[A, B](t: OrderedTableRef[A, B]; key: A): bool</a></li>
|
|
<li><a class="reference" href="#hasKey%2CTable%5BA%2CB%5D%2CA" title="hasKey[A, B](t: Table[A, B]; key: A): bool">hasKey[A, B](t: Table[A, B]; key: A): bool</a></li>
|
|
<li><a class="reference" href="#hasKey%2CTableRef%5BA%2CB%5D%2CA" title="hasKey[A, B](t: TableRef[A, B]; key: A): bool">hasKey[A, B](t: TableRef[A, B]; key: A): bool</a></li>
|
|
<li><a class="reference" href="#hasKey%2CCountTable%5BA%5D%2CA" title="hasKey[A](t: CountTable[A]; key: A): bool">hasKey[A](t: CountTable[A]; key: A): bool</a></li>
|
|
<li><a class="reference" href="#hasKey%2CCountTableRef%5BA%5D%2CA" title="hasKey[A](t: CountTableRef[A]; key: A): bool">hasKey[A](t: CountTableRef[A]; key: A): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">hasKeyOrPut
|
|
<li><a class="reference" href="#hasKeyOrPut%2COrderedTableRef%5BA%2CB%5D%2CA%2CB" title="hasKeyOrPut[A, B](t: OrderedTableRef[A, B]; key: A; val: B): bool">hasKeyOrPut[A, B](t: OrderedTableRef[A, B]; key: A; val: B): bool</a></li>
|
|
<li><a class="reference" href="#hasKeyOrPut%2CTableRef%5BA%2CB%5D%2CA%2CB" title="hasKeyOrPut[A, B](t: TableRef[A, B]; key: A; val: B): bool">hasKeyOrPut[A, B](t: TableRef[A, B]; key: A; val: B): bool</a></li>
|
|
<li><a class="reference" href="#hasKeyOrPut%2COrderedTable%5BA%2CB%5D%2CA%2CB" title="hasKeyOrPut[A, B](t: var OrderedTable[A, B]; key: A; val: B): bool">hasKeyOrPut[A, B](t: var OrderedTable[A, B]; key: A; val: B): bool</a></li>
|
|
<li><a class="reference" href="#hasKeyOrPut%2CTable%5BA%2CB%5D%2CA%2CB" title="hasKeyOrPut[A, B](t: var Table[A, B]; key: A; val: B): bool">hasKeyOrPut[A, B](t: var Table[A, B]; key: A; val: B): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">inc
|
|
<li><a class="reference" href="#inc%2CCountTableRef%5BA%5D%2CA%2Cint" title="inc[A](t: CountTableRef[A]; key: A; val = 1)">inc[A](t: CountTableRef[A]; key: A; val = 1)</a></li>
|
|
<li><a class="reference" href="#inc%2CCountTable%5BA%5D%2CA%2Cint" title="inc[A](t: var CountTable[A]; key: A; val = 1)">inc[A](t: var CountTable[A]; key: A; val = 1)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">indexBy
|
|
<li><a class="reference" href="#indexBy%2CA%2Cproc%28B%29" title="indexBy[A, B, C](collection: A; index: proc (x: B): C): Table[C, B]">indexBy[A, B, C](collection: A; index: proc (x: B): C): Table[C, B]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">initCountTable
|
|
<li><a class="reference" href="#initCountTable" title="initCountTable[A](initialSize = defaultInitialSize): CountTable[A]">initCountTable[A](initialSize = defaultInitialSize): CountTable[A]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">initOrderedTable
|
|
<li><a class="reference" href="#initOrderedTable" title="initOrderedTable[A, B](initialSize = defaultInitialSize): OrderedTable[A, B]">initOrderedTable[A, B](initialSize = defaultInitialSize): OrderedTable[A, B]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">initTable
|
|
<li><a class="reference" href="#initTable" title="initTable[A, B](initialSize = defaultInitialSize): Table[A, B]">initTable[A, B](initialSize = defaultInitialSize): Table[A, B]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">largest
|
|
<li><a class="reference" href="#largest%2CCountTable%5BA%5D" title="largest[A](t: CountTable[A]): tuple[key: A, val: int]">largest[A](t: CountTable[A]): tuple[key: A, val: int]</a></li>
|
|
<li><a class="reference" href="#largest%2CCountTableRef%5BA%5D" title="largest[A](t: CountTableRef[A]): tuple[key: A, val: int]">largest[A](t: CountTableRef[A]): tuple[key: A, val: int]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">len
|
|
<li><a class="reference" href="#len%2COrderedTable%5BA%2CB%5D" title="len[A, B](t: OrderedTable[A, B]): int">len[A, B](t: OrderedTable[A, B]): int</a></li>
|
|
<li><a class="reference" href="#len%2COrderedTableRef%5BA%2CB%5D" title="len[A, B](t: OrderedTableRef[A, B]): int">len[A, B](t: OrderedTableRef[A, B]): int</a></li>
|
|
<li><a class="reference" href="#len%2CTable%5BA%2CB%5D" title="len[A, B](t: Table[A, B]): int">len[A, B](t: Table[A, B]): int</a></li>
|
|
<li><a class="reference" href="#len%2CTableRef%5BA%2CB%5D" title="len[A, B](t: TableRef[A, B]): int">len[A, B](t: TableRef[A, B]): int</a></li>
|
|
<li><a class="reference" href="#len%2CCountTable%5BA%5D" title="len[A](t: CountTable[A]): int">len[A](t: CountTable[A]): int</a></li>
|
|
<li><a class="reference" href="#len%2CCountTableRef%5BA%5D" title="len[A](t: CountTableRef[A]): int">len[A](t: CountTableRef[A]): int</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">merge
|
|
<li><a class="reference" href="#merge%2CCountTableRef%5BA%5D%2CCountTableRef%5BA%5D" title="merge[A](s, t: CountTableRef[A])">merge[A](s, t: CountTableRef[A])</a></li>
|
|
<li><a class="reference" href="#merge%2CCountTable%5BA%5D%2CCountTable%5BA%5D" title="merge[A](s: var CountTable[A]; t: CountTable[A])">merge[A](s: var CountTable[A]; t: CountTable[A])</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">mgetOrPut
|
|
<li><a class="reference" href="#mgetOrPut%2COrderedTableRef%5BA%2CB%5D%2CA" title="mgetOrPut[A, B](t: OrderedTableRef[A, B]; key: A): var B">mgetOrPut[A, B](t: OrderedTableRef[A, B]; key: A): var B</a></li>
|
|
<li><a class="reference" href="#mgetOrPut%2COrderedTableRef%5BA%2CB%5D%2CA%2CB" title="mgetOrPut[A, B](t: OrderedTableRef[A, B]; key: A; val: B): var B">mgetOrPut[A, B](t: OrderedTableRef[A, B]; key: A; val: B): var B</a></li>
|
|
<li><a class="reference" href="#mgetOrPut%2CTableRef%5BA%2CB%5D%2CA" title="mgetOrPut[A, B](t: TableRef[A, B]; key: A): var B">mgetOrPut[A, B](t: TableRef[A, B]; key: A): var B</a></li>
|
|
<li><a class="reference" href="#mgetOrPut%2CTableRef%5BA%2CB%5D%2CA%2CB" title="mgetOrPut[A, B](t: TableRef[A, B]; key: A; val: B): var B">mgetOrPut[A, B](t: TableRef[A, B]; key: A; val: B): var B</a></li>
|
|
<li><a class="reference" href="#mgetOrPut%2COrderedTable%5BA%2CB%5D%2CA" title="mgetOrPut[A, B](t: var OrderedTable[A, B]; key: A): var B">mgetOrPut[A, B](t: var OrderedTable[A, B]; key: A): var B</a></li>
|
|
<li><a class="reference" href="#mgetOrPut%2COrderedTable%5BA%2CB%5D%2CA%2CB" title="mgetOrPut[A, B](t: var OrderedTable[A, B]; key: A; val: B): var B">mgetOrPut[A, B](t: var OrderedTable[A, B]; key: A; val: B): var B</a></li>
|
|
<li><a class="reference" href="#mgetOrPut%2CTable%5BA%2CB%5D%2CA" title="mgetOrPut[A, B](t: var Table[A, B]; key: A): var B">mgetOrPut[A, B](t: var Table[A, B]; key: A): var B</a></li>
|
|
<li><a class="reference" href="#mgetOrPut%2CTable%5BA%2CB%5D%2CA%2CB" title="mgetOrPut[A, B](t: var Table[A, B]; key: A; val: B): var B">mgetOrPut[A, B](t: var Table[A, B]; key: A; val: B): var B</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">newCountTable
|
|
<li><a class="reference" href="#newCountTable" title="newCountTable[A](initialSize = defaultInitialSize): CountTableRef[A]">newCountTable[A](initialSize = defaultInitialSize): CountTableRef[A]</a></li>
|
|
<li><a class="reference" href="#newCountTable%2CopenArray%5BA%5D" title="newCountTable[A](keys: openArray[A]): CountTableRef[A]">newCountTable[A](keys: openArray[A]): CountTableRef[A]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">newOrderedTable
|
|
<li><a class="reference" href="#newOrderedTable" title="newOrderedTable[A, B](initialSize = defaultInitialSize): OrderedTableRef[A, B]">newOrderedTable[A, B](initialSize = defaultInitialSize): OrderedTableRef[A, B]</a></li>
|
|
<li><a class="reference" href="#newOrderedTable%2CopenArray%5B%5D" title="newOrderedTable[A, B](pairs: openArray[(A, B)]): OrderedTableRef[A, B]">newOrderedTable[A, B](pairs: openArray[(A, B)]): OrderedTableRef[A, B]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">newTable
|
|
<li><a class="reference" href="#newTable" title="newTable[A, B](initialSize = defaultInitialSize): TableRef[A, B]">newTable[A, B](initialSize = defaultInitialSize): TableRef[A, B]</a></li>
|
|
<li><a class="reference" href="#newTable%2CopenArray%5B%5D" title="newTable[A, B](pairs: openArray[(A, B)]): TableRef[A, B]">newTable[A, B](pairs: openArray[(A, B)]): TableRef[A, B]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">newTableFrom
|
|
<li><a class="reference" href="#newTableFrom%2CA%2Cproc%28B%29" title="newTableFrom[A, B, C](collection: A; index: proc (x: B): C): TableRef[C, B]">newTableFrom[A, B, C](collection: A; index: proc (x: B): C): TableRef[C, B]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">pop
|
|
<li><a class="reference" href="#pop%2COrderedTableRef%5BA%2CB%5D%2CA%2CB" title="pop[A, B](t: OrderedTableRef[A, B]; key: A; val: var B): bool">pop[A, B](t: OrderedTableRef[A, B]; key: A; val: var B): bool</a></li>
|
|
<li><a class="reference" href="#pop%2CTableRef%5BA%2CB%5D%2CA%2CB" title="pop[A, B](t: TableRef[A, B]; key: A; val: var B): bool">pop[A, B](t: TableRef[A, B]; key: A; val: var B): bool</a></li>
|
|
<li><a class="reference" href="#pop%2COrderedTable%5BA%2CB%5D%2CA%2CB" title="pop[A, B](t: var OrderedTable[A, B]; key: A; val: var B): bool">pop[A, B](t: var OrderedTable[A, B]; key: A; val: var B): bool</a></li>
|
|
<li><a class="reference" href="#pop%2CTable%5BA%2CB%5D%2CA%2CB" title="pop[A, B](t: var Table[A, B]; key: A; val: var B): bool">pop[A, B](t: var Table[A, B]; key: A; val: var B): bool</a></li>
|
|
<li><a class="reference" href="#pop%2CCountTableRef%5BA%5D%2CA%2Cint" title="pop[A](t: CountTableRef[A]; key: A; val: var int): bool">pop[A](t: CountTableRef[A]; key: A; val: var int): bool</a></li>
|
|
<li><a class="reference" href="#pop%2CCountTable%5BA%5D%2CA%2Cint" title="pop[A](t: var CountTable[A]; key: A; val: var int): bool">pop[A](t: var CountTable[A]; key: A; val: var int): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">smallest
|
|
<li><a class="reference" href="#smallest%2CCountTable%5BA%5D" title="smallest[A](t: CountTable[A]): tuple[key: A, val: int]">smallest[A](t: CountTable[A]): tuple[key: A, val: int]</a></li>
|
|
<li><a class="reference" href="#smallest%2CCountTableRef%5BA%5D" title="smallest[A](t: CountTableRef[A]): tuple[key: A, val: int]">smallest[A](t: CountTableRef[A]): tuple[key: A, val: int]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">sort
|
|
<li><a class="reference" href="#sort%2COrderedTableRef%5BA%2CB%5D%2Cproc%28%2C%29" title="sort[A, B](t: OrderedTableRef[A, B]; cmp: proc (x, y: (A, B)): int;
|
|
order = SortOrder.Ascending)">sort[A, B](t: OrderedTableRef[A, B]; cmp: proc (x, y: (A, B)): int;
|
|
order = SortOrder.Ascending)</a></li>
|
|
<li><a class="reference" href="#sort%2COrderedTable%5BA%2CB%5D%2Cproc%28%2C%29" title="sort[A, B](t: var OrderedTable[A, B]; cmp: proc (x, y: (A, B)): int;
|
|
order = SortOrder.Ascending)">sort[A, B](t: var OrderedTable[A, B]; cmp: proc (x, y: (A, B)): int;
|
|
order = SortOrder.Ascending)</a></li>
|
|
<li><a class="reference" href="#sort%2CCountTableRef%5BA%5D" title="sort[A](t: CountTableRef[A]; order = SortOrder.Descending)">sort[A](t: CountTableRef[A]; order = SortOrder.Descending)</a></li>
|
|
<li><a class="reference" href="#sort%2CCountTable%5BA%5D" title="sort[A](t: var CountTable[A]; order = SortOrder.Descending)">sort[A](t: var CountTable[A]; order = SortOrder.Descending)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">take
|
|
<li><a class="reference" href="#take%2CTableRef%5BA%2CB%5D%2CA%2CB" title="take[A, B](t: TableRef[A, B]; key: A; val: var B): bool">take[A, B](t: TableRef[A, B]; key: A; val: var B): bool</a></li>
|
|
<li><a class="reference" href="#take%2CTable%5BA%2CB%5D%2CA%2CB" title="take[A, B](t: var Table[A, B]; key: A; val: var B): bool">take[A, B](t: var Table[A, B]; key: A; val: var B): bool</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">toCountTable
|
|
<li><a class="reference" href="#toCountTable%2CopenArray%5BA%5D" title="toCountTable[A](keys: openArray[A]): CountTable[A]">toCountTable[A](keys: openArray[A]): CountTable[A]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">toOrderedTable
|
|
<li><a class="reference" href="#toOrderedTable%2CopenArray%5B%5D" title="toOrderedTable[A, B](pairs: openArray[(A, B)]): OrderedTable[A, B]">toOrderedTable[A, B](pairs: openArray[(A, B)]): OrderedTable[A, B]</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">toTable
|
|
<li><a class="reference" href="#toTable%2CopenArray%5B%5D" title="toTable[A, B](pairs: openArray[(A, B)]): Table[A, B]">toTable[A, B](pairs: openArray[(A, B)]): Table[A, B]</a></li>
|
|
|
|
</ul>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#15" id="65">Iterators</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<ul class="simple nested-toc-section">allValues
|
|
<li><a class="reference" href="#allValues.i%2CTable%5BA%2CB%5D%2CA" title="allValues[A, B](t: Table[A, B]; key: A): B">allValues[A, B](t: Table[A, B]; key: A): B</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">keys
|
|
<li><a class="reference" href="#keys.i%2COrderedTable%5BA%2CB%5D" title="keys[A, B](t: OrderedTable[A, B]): lent A">keys[A, B](t: OrderedTable[A, B]): lent A</a></li>
|
|
<li><a class="reference" href="#keys.i%2COrderedTableRef%5BA%2CB%5D" title="keys[A, B](t: OrderedTableRef[A, B]): lent A">keys[A, B](t: OrderedTableRef[A, B]): lent A</a></li>
|
|
<li><a class="reference" href="#keys.i%2CTable%5BA%2CB%5D" title="keys[A, B](t: Table[A, B]): lent A">keys[A, B](t: Table[A, B]): lent A</a></li>
|
|
<li><a class="reference" href="#keys.i%2CTableRef%5BA%2CB%5D" title="keys[A, B](t: TableRef[A, B]): lent A">keys[A, B](t: TableRef[A, B]): lent A</a></li>
|
|
<li><a class="reference" href="#keys.i%2CCountTable%5BA%5D" title="keys[A](t: CountTable[A]): lent A">keys[A](t: CountTable[A]): lent A</a></li>
|
|
<li><a class="reference" href="#keys.i%2CCountTableRef%5BA%5D" title="keys[A](t: CountTableRef[A]): A">keys[A](t: CountTableRef[A]): A</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">mpairs
|
|
<li><a class="reference" href="#mpairs.i%2COrderedTableRef%5BA%2CB%5D" title="mpairs[A, B](t: OrderedTableRef[A, B]): (A, var B)">mpairs[A, B](t: OrderedTableRef[A, B]): (A, var B)</a></li>
|
|
<li><a class="reference" href="#mpairs.i%2CTableRef%5BA%2CB%5D" title="mpairs[A, B](t: TableRef[A, B]): (A, var B)">mpairs[A, B](t: TableRef[A, B]): (A, var B)</a></li>
|
|
<li><a class="reference" href="#mpairs.i%2COrderedTable%5BA%2CB%5D" title="mpairs[A, B](t: var OrderedTable[A, B]): (A, var B)">mpairs[A, B](t: var OrderedTable[A, B]): (A, var B)</a></li>
|
|
<li><a class="reference" href="#mpairs.i%2CTable%5BA%2CB%5D" title="mpairs[A, B](t: var Table[A, B]): (A, var B)">mpairs[A, B](t: var Table[A, B]): (A, var B)</a></li>
|
|
<li><a class="reference" href="#mpairs.i%2CCountTableRef%5BA%5D" title="mpairs[A](t: CountTableRef[A]): (A, var int)">mpairs[A](t: CountTableRef[A]): (A, var int)</a></li>
|
|
<li><a class="reference" href="#mpairs.i%2CCountTable%5BA%5D" title="mpairs[A](t: var CountTable[A]): (A, var int)">mpairs[A](t: var CountTable[A]): (A, var int)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">mvalues
|
|
<li><a class="reference" href="#mvalues.i%2COrderedTableRef%5BA%2CB%5D" title="mvalues[A, B](t: OrderedTableRef[A, B]): var B">mvalues[A, B](t: OrderedTableRef[A, B]): var B</a></li>
|
|
<li><a class="reference" href="#mvalues.i%2CTableRef%5BA%2CB%5D" title="mvalues[A, B](t: TableRef[A, B]): var B">mvalues[A, B](t: TableRef[A, B]): var B</a></li>
|
|
<li><a class="reference" href="#mvalues.i%2COrderedTable%5BA%2CB%5D" title="mvalues[A, B](t: var OrderedTable[A, B]): var B">mvalues[A, B](t: var OrderedTable[A, B]): var B</a></li>
|
|
<li><a class="reference" href="#mvalues.i%2CTable%5BA%2CB%5D" title="mvalues[A, B](t: var Table[A, B]): var B">mvalues[A, B](t: var Table[A, B]): var B</a></li>
|
|
<li><a class="reference" href="#mvalues.i%2CCountTableRef%5BA%5D" title="mvalues[A](t: CountTableRef[A]): var int">mvalues[A](t: CountTableRef[A]): var int</a></li>
|
|
<li><a class="reference" href="#mvalues.i%2CCountTable%5BA%5D" title="mvalues[A](t: var CountTable[A]): var int">mvalues[A](t: var CountTable[A]): var int</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">pairs
|
|
<li><a class="reference" href="#pairs.i%2COrderedTable%5BA%2CB%5D" title="pairs[A, B](t: OrderedTable[A, B]): (A, B)">pairs[A, B](t: OrderedTable[A, B]): (A, B)</a></li>
|
|
<li><a class="reference" href="#pairs.i%2COrderedTableRef%5BA%2CB%5D" title="pairs[A, B](t: OrderedTableRef[A, B]): (A, B)">pairs[A, B](t: OrderedTableRef[A, B]): (A, B)</a></li>
|
|
<li><a class="reference" href="#pairs.i%2CTable%5BA%2CB%5D" title="pairs[A, B](t: Table[A, B]): (A, B)">pairs[A, B](t: Table[A, B]): (A, B)</a></li>
|
|
<li><a class="reference" href="#pairs.i%2CTableRef%5BA%2CB%5D" title="pairs[A, B](t: TableRef[A, B]): (A, B)">pairs[A, B](t: TableRef[A, B]): (A, B)</a></li>
|
|
<li><a class="reference" href="#pairs.i%2CCountTable%5BA%5D" title="pairs[A](t: CountTable[A]): (A, int)">pairs[A](t: CountTable[A]): (A, int)</a></li>
|
|
<li><a class="reference" href="#pairs.i%2CCountTableRef%5BA%5D" title="pairs[A](t: CountTableRef[A]): (A, int)">pairs[A](t: CountTableRef[A]): (A, int)</a></li>
|
|
|
|
</ul>
|
|
<ul class="simple nested-toc-section">values
|
|
<li><a class="reference" href="#values.i%2COrderedTable%5BA%2CB%5D" title="values[A, B](t: OrderedTable[A, B]): lent B">values[A, B](t: OrderedTable[A, B]): lent B</a></li>
|
|
<li><a class="reference" href="#values.i%2COrderedTableRef%5BA%2CB%5D" title="values[A, B](t: OrderedTableRef[A, B]): lent B">values[A, B](t: OrderedTableRef[A, B]): lent B</a></li>
|
|
<li><a class="reference" href="#values.i%2CTable%5BA%2CB%5D" title="values[A, B](t: Table[A, B]): lent B">values[A, B](t: Table[A, B]): lent B</a></li>
|
|
<li><a class="reference" href="#values.i%2CTableRef%5BA%2CB%5D" title="values[A, B](t: TableRef[A, B]): lent B">values[A, B](t: TableRef[A, B]): lent B</a></li>
|
|
<li><a class="reference" href="#values.i%2CCountTable%5BA%5D" title="values[A](t: CountTable[A]): int">values[A](t: CountTable[A]): int</a></li>
|
|
<li><a class="reference" href="#values.i%2CCountTableRef%5BA%5D" title="values[A](t: CountTableRef[A]): int">values[A](t: CountTableRef[A]): int</a></li>
|
|
|
|
</ul>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
<li>
|
|
<details open>
|
|
<summary><a class="reference reference-toplevel" href="#18" id="68">Templates</a></summary>
|
|
<ul class="simple simple-toc-section">
|
|
<ul class="simple nested-toc-section">withValue
|
|
<li><a class="reference" href="#withValue.t%2CTable%5BA%2CB%5D%2CA%2Cuntyped%2Cuntyped%2Cuntyped_2" title="withValue[A, B](t: Table[A, B]; key: A; value, body1, body2: untyped)">withValue[A, B](t: Table[A, B]; key: A; value, body1, body2: untyped)</a></li>
|
|
<li><a class="reference" href="#withValue.t%2CTable%5BA%2CB%5D%2CA%2Cuntyped%2Cuntyped_2" title="withValue[A, B](t: Table[A, B]; key: A; value, body: untyped)">withValue[A, B](t: Table[A, B]; key: A; value, body: untyped)</a></li>
|
|
<li><a class="reference" href="#withValue.t%2CTable%5BA%2CB%5D%2CA%2Cuntyped%2Cuntyped%2Cuntyped" title="withValue[A, B](t: var Table[A, B]; key: A; value, body1, body2: untyped)">withValue[A, B](t: var Table[A, B]; key: A; value, body1, body2: untyped)</a></li>
|
|
<li><a class="reference" href="#withValue.t%2CTable%5BA%2CB%5D%2CA%2Cuntyped%2Cuntyped" title="withValue[A, B](t: var Table[A, B]; key: A; value, body: untyped)">withValue[A, B](t: var Table[A, B]; key: A; value, body: untyped)</a></li>
|
|
|
|
</ul>
|
|
|
|
</ul>
|
|
</details>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
<div class="nine columns" id="content">
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
<div id="tocRoot"></div>
|
|
|
|
<p class="module-desc"><p>The <tt class="docutils literal"><span class="pre"><span class="Identifier">tables</span></span></tt> module implements variants of an efficient <span id="hash-table_1">hash table</span> (also often named <span id="dictionary_1">dictionary</span> in other programming languages) that is a mapping from keys to values.</p>
|
|
<p>There are several different types of hash tables available:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#Table">Table</a> is the usual hash table,</li>
|
|
<li><a class="reference external" href="#OrderedTable">OrderedTable</a> is like <tt class="docutils literal"><span class="pre"><span class="Identifier">Table</span></span></tt> but remembers insertion order,</li>
|
|
<li><a class="reference external" href="#CountTable">CountTable</a> is a mapping from a key to its number of occurrences</li>
|
|
</ul>
|
|
<p>For consistency with every other data type in Nim these have <strong>value</strong> semantics, this means that <tt class="docutils literal"><span class="pre"><span class="Operator">=</span></span></tt> performs a copy of the hash table.</p>
|
|
<p>For <a class="reference external" href="manual.html#types-reference-and-pointer-types">ref semantics</a> use their <tt class="docutils literal"><span class="pre"><span class="Keyword">Ref</span></span></tt> variants: <a class="reference external" href="#TableRef">TableRef</a>, <a class="reference external" href="#OrderedTableRef">OrderedTableRef</a>, and <a class="reference external" href="#CountTableRef">CountTableRef</a>.</p>
|
|
<p>To give an example, when <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> is a <tt class="docutils literal"><span class="pre"><span class="Identifier">Table</span></span></tt>, then <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span> <span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">a</span></span></tt> gives <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt> as a new independent table. <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt> is initialised with the contents of <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt>. Changing <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt> does not affect <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> and vice versa:</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">tables</span>
|
|
<span class="Keyword">var</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">:</span> <span class="StringLit">"one"</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">:</span> <span class="StringLit">"two"</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toTable</span> <span class="Comment"># creates a Table</span>
|
|
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">a</span>
|
|
|
|
<span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">b</span>
|
|
|
|
<span class="Identifier">b</span><span class="Punctuation">[</span><span class="DecNumber">3</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="StringLit">"three"</span>
|
|
<span class="Identifier">assert</span> <span class="DecNumber">3</span> <span class="Keyword">notin</span> <span class="Identifier">a</span>
|
|
<span class="Identifier">assert</span> <span class="DecNumber">3</span> <span class="Keyword">in</span> <span class="Identifier">b</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">!=</span> <span class="Identifier">b</span></pre>On the other hand, when <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> is a <tt class="docutils literal"><span class="pre"><span class="Identifier">TableRef</span></span></tt> instead, then changes to <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt> also affect <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt>. Both <tt class="docutils literal"><span class="pre"><span class="Identifier">a</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">b</span></span></tt> <strong>ref</strong> the same data structure:
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">tables</span>
|
|
<span class="Keyword">var</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="DecNumber">1</span><span class="Punctuation">:</span> <span class="StringLit">"one"</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">:</span> <span class="StringLit">"two"</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newTable</span> <span class="Comment"># creates a TableRef</span>
|
|
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">a</span>
|
|
|
|
<span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">b</span>
|
|
|
|
<span class="Identifier">b</span><span class="Punctuation">[</span><span class="DecNumber">3</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="StringLit">"three"</span>
|
|
|
|
<span class="Identifier">assert</span> <span class="DecNumber">3</span> <span class="Keyword">in</span> <span class="Identifier">a</span>
|
|
<span class="Identifier">assert</span> <span class="DecNumber">3</span> <span class="Keyword">in</span> <span class="Identifier">b</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">b</span></pre><hr />
|
|
|
|
<h1><a class="toc-backref" id="basic-usage" href="#basic-usage">Basic usage</a></h1>
|
|
<h2><a class="toc-backref" id="basic-usage-table" href="#basic-usage-table">Table</a></h2>
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">tables</span>
|
|
<span class="Keyword">from</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">sequtils</span> <span class="Keyword">import</span> <span class="Identifier">zip</span>
|
|
|
|
<span class="Keyword">let</span>
|
|
<span class="Identifier">names</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="StringLit">"John"</span><span class="Punctuation">,</span> <span class="StringLit">"Paul"</span><span class="Punctuation">,</span> <span class="StringLit">"George"</span><span class="Punctuation">,</span> <span class="StringLit">"Ringo"</span><span class="Punctuation">]</span>
|
|
<span class="Identifier">years</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="DecNumber">1940</span><span class="Punctuation">,</span> <span class="DecNumber">1942</span><span class="Punctuation">,</span> <span class="DecNumber">1943</span><span class="Punctuation">,</span> <span class="DecNumber">1940</span><span class="Punctuation">]</span>
|
|
|
|
<span class="Keyword">var</span> <span class="Identifier">beatles</span> <span class="Operator">=</span> <span class="Identifier">initTable</span><span class="Punctuation">[</span><span class="Identifier">string</span><span class="Punctuation">,</span> <span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
|
|
<span class="Keyword">for</span> <span class="Identifier">pairs</span> <span class="Keyword">in</span> <span class="Identifier">zip</span><span class="Punctuation">(</span><span class="Identifier">names</span><span class="Punctuation">,</span> <span class="Identifier">years</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Keyword">let</span> <span class="Punctuation">(</span><span class="Identifier">name</span><span class="Punctuation">,</span> <span class="Identifier">birthYear</span><span class="Punctuation">)</span> <span class="Operator">=</span> <span class="Identifier">pairs</span>
|
|
<span class="Identifier">beatles</span><span class="Punctuation">[</span><span class="Identifier">name</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Identifier">birthYear</span>
|
|
|
|
<span class="Identifier">assert</span> <span class="Identifier">beatles</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="StringLit">"George"</span><span class="Punctuation">:</span> <span class="DecNumber">1943</span><span class="Punctuation">,</span> <span class="StringLit">"Ringo"</span><span class="Punctuation">:</span> <span class="DecNumber">1940</span><span class="Punctuation">,</span> <span class="StringLit">"Paul"</span><span class="Punctuation">:</span> <span class="DecNumber">1942</span><span class="Punctuation">,</span> <span class="StringLit">"John"</span><span class="Punctuation">:</span> <span class="DecNumber">1940</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toTable</span>
|
|
|
|
|
|
<span class="Keyword">var</span> <span class="Identifier">beatlesByYear</span> <span class="Operator">=</span> <span class="Identifier">initTable</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">string</span><span class="Punctuation">]</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
|
|
<span class="Keyword">for</span> <span class="Identifier">pairs</span> <span class="Keyword">in</span> <span class="Identifier">zip</span><span class="Punctuation">(</span><span class="Identifier">years</span><span class="Punctuation">,</span> <span class="Identifier">names</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Keyword">let</span> <span class="Punctuation">(</span><span class="Identifier">birthYear</span><span class="Punctuation">,</span> <span class="Identifier">name</span><span class="Punctuation">)</span> <span class="Operator">=</span> <span class="Identifier">pairs</span>
|
|
<span class="Keyword">if</span> <span class="Keyword">not</span> <span class="Identifier">beatlesByYear</span><span class="Operator">.</span><span class="Identifier">hasKey</span><span class="Punctuation">(</span><span class="Identifier">birthYear</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Comment"># if a key doesn't exist, we create one with an empty sequence</span>
|
|
<span class="Comment"># before we can add elements to it</span>
|
|
<span class="Identifier">beatlesByYear</span><span class="Punctuation">[</span><span class="Identifier">birthYear</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="Punctuation">]</span>
|
|
<span class="Identifier">beatlesByYear</span><span class="Punctuation">[</span><span class="Identifier">birthYear</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">name</span><span class="Punctuation">)</span>
|
|
|
|
<span class="Identifier">assert</span> <span class="Identifier">beatlesByYear</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="DecNumber">1940</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"John"</span><span class="Punctuation">,</span> <span class="StringLit">"Ringo"</span><span class="Punctuation">]</span><span class="Punctuation">,</span> <span class="DecNumber">1942</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"Paul"</span><span class="Punctuation">]</span><span class="Punctuation">,</span> <span class="DecNumber">1943</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="StringLit">"George"</span><span class="Punctuation">]</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toTable</span></pre>
|
|
<h2><a class="toc-backref" id="basic-usage-orderedtable" href="#basic-usage-orderedtable">OrderedTable</a></h2><p><a class="reference external" href="#OrderedTable">OrderedTable</a> is used when it is important to preserve the insertion order of keys.</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">tables</span>
|
|
<span class="Keyword">let</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 1), ('</span><span class="Identifier">y</span><span class="CharLit">', 2), ('</span><span class="Identifier">x</span><span class="CharLit">', 3)]</span>
|
|
<span class="Identifier">ot</span> <span class="Operator">=</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">toOrderedTable</span> <span class="Comment"># ordered tables</span>
|
|
|
|
<span class="Identifier">assert</span> <span class="Operator">$</span><span class="Identifier">ot</span> <span class="Operator">==</span> <span class="LongStringLit">"""{'z': 1, 'y': 2, 'x': 3}"""</span></pre>
|
|
<h2><a class="toc-backref" id="basic-usage-counttable" href="#basic-usage-counttable">CountTable</a></h2><p><a class="reference external" href="#CountTable">CountTable</a> is useful for counting number of items of some container (e.g. string, sequence or array), as it is a mapping where the items are the keys, and their number of occurrences are the values. For that purpose <a class="reference external" href="#toCountTable,openArray[A]">toCountTable proc</a> comes in handy:</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">tables</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">myString</span> <span class="Operator">=</span> <span class="StringLit">"abracadabra"</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">letterFrequencies</span> <span class="Operator">=</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="Identifier">myString</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">assert</span> <span class="Operator">$</span><span class="Identifier">letterFrequencies</span> <span class="Operator">==</span> <span class="StringLit">"{'a': 5, 'd': 1, 'b': 2, 'r': 2, 'c': 1}"</span></pre>The same could have been achieved by manually iterating over a container and increasing each key's value with <a class="reference external" href="#inc,CountTable[A],A,int">inc proc</a>:
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">tables</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">myString</span> <span class="Operator">=</span> <span class="StringLit">"abracadabra"</span>
|
|
<span class="Keyword">var</span> <span class="Identifier">letterFrequencies</span> <span class="Operator">=</span> <span class="Identifier">initCountTable</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">c</span> <span class="Keyword">in</span> <span class="Identifier">myString</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">letterFrequencies</span><span class="Operator">.</span><span class="Identifier">inc</span><span class="Punctuation">(</span><span class="Identifier">c</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">assert</span> <span class="Operator">$</span><span class="Identifier">letterFrequencies</span> <span class="Operator">==</span> <span class="StringLit">"{'d': 1, 'r': 2, 'c': 1, 'a': 5, 'b': 2}"</span></pre><hr />
|
|
|
|
<h2><a class="toc-backref" id="basic-usage-hashing" href="#basic-usage-hashing">Hashing</a></h2><p>If you are using simple standard types like <tt class="docutils literal"><span class="pre"><span class="Identifier">int</span></span></tt> or <tt class="docutils literal"><span class="pre"><span class="Identifier">string</span></span></tt> for the keys of the table you won't have any problems, but as soon as you try to use a more complex object as a key you will be greeted by a strange compiler error:</p>
|
|
<pre>Error: type mismatch: got (Person)
|
|
but expected one of:
|
|
hashes.hash(x: openArray[A]): Hash
|
|
hashes.hash(x: int): Hash
|
|
hashes.hash(x: float): Hash</pre>
|
|
<p>What is happening here is that the types used for table keys require to have a <tt class="docutils literal"><span class="pre"><span class="Identifier">hash</span><span class="Punctuation">(</span><span class="Punctuation">)</span></span></tt> proc which will convert them to a <a class="reference external" href="hashes.html#Hash">Hash</a> value, and the compiler is listing all the hash functions it knows. Additionally there has to be a <tt class="docutils literal"><span class="pre"><span class="Operator">==</span></span></tt> operator that provides the same semantics as its corresponding <tt class="docutils literal"><span class="pre"><span class="Identifier">hash</span></span></tt> proc.</p>
|
|
<p>After you add <tt class="docutils literal"><span class="pre"><span class="Identifier">hash</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Operator">==</span></span></tt> for your custom type everything will work. Currently, however, <tt class="docutils literal"><span class="pre"><span class="Identifier">hash</span></span></tt> for objects is not defined, whereas <tt class="docutils literal"><span class="pre"><span class="Identifier">system</span><span class="Operator">.==</span></span></tt> for objects does exist and performs a "deep" comparison (every field is compared) which is usually what you want. So in the following example implementing only <tt class="docutils literal"><span class="pre"><span class="Identifier">hash</span></span></tt> suffices:</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">tables</span>
|
|
<span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Identifier">hashes</span>
|
|
|
|
<span class="Keyword">type</span>
|
|
<span class="Identifier">Person</span> <span class="Operator">=</span> <span class="Keyword">object</span>
|
|
<span class="Identifier">firstName</span><span class="Punctuation">,</span> <span class="Identifier">lastName</span><span class="Punctuation">:</span> <span class="Identifier">string</span>
|
|
|
|
<span class="Keyword">proc</span> <span class="Identifier">hash</span><span class="Punctuation">(</span><span class="Identifier">x</span><span class="Punctuation">:</span> <span class="Identifier">Person</span><span class="Punctuation">)</span><span class="Punctuation">:</span> <span class="Identifier">Hash</span> <span class="Operator">=</span>
|
|
<span class="Comment">## Piggyback on the already available string hash proc.</span>
|
|
<span class="Comment">##</span>
|
|
<span class="Comment">## Without this proc nothing works!</span>
|
|
<span class="Identifier">result</span> <span class="Operator">=</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">firstName</span><span class="Operator">.</span><span class="Identifier">hash</span> <span class="Operator">!&</span> <span class="Identifier">x</span><span class="Operator">.</span><span class="Identifier">lastName</span><span class="Operator">.</span><span class="Identifier">hash</span>
|
|
<span class="Identifier">result</span> <span class="Operator">=</span> <span class="Operator">!$</span><span class="Identifier">result</span>
|
|
|
|
<span class="Keyword">var</span>
|
|
<span class="Identifier">salaries</span> <span class="Operator">=</span> <span class="Identifier">initTable</span><span class="Punctuation">[</span><span class="Identifier">Person</span><span class="Punctuation">,</span> <span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">p1</span><span class="Punctuation">,</span> <span class="Identifier">p2</span><span class="Punctuation">:</span> <span class="Identifier">Person</span>
|
|
|
|
<span class="Identifier">p1</span><span class="Operator">.</span><span class="Identifier">firstName</span> <span class="Operator">=</span> <span class="StringLit">"Jon"</span>
|
|
<span class="Identifier">p1</span><span class="Operator">.</span><span class="Identifier">lastName</span> <span class="Operator">=</span> <span class="StringLit">"Ross"</span>
|
|
<span class="Identifier">salaries</span><span class="Punctuation">[</span><span class="Identifier">p1</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="DecNumber">30_000</span>
|
|
|
|
<span class="Identifier">p2</span><span class="Operator">.</span><span class="Identifier">firstName</span> <span class="Operator">=</span> <span class="StringLit">"소진"</span>
|
|
<span class="Identifier">p2</span><span class="Operator">.</span><span class="Identifier">lastName</span> <span class="Operator">=</span> <span class="StringLit">"박"</span>
|
|
<span class="Identifier">salaries</span><span class="Punctuation">[</span><span class="Identifier">p2</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="DecNumber">45_000</span></pre><hr />
|
|
|
|
<h1><a class="toc-backref" id="see-also" href="#see-also">See also</a></h1><ul class="simple"><li><a class="reference external" href="json.html">json module</a> for table-like structure which allows heterogeneous members</li>
|
|
<li><a class="reference external" href="strtabs.html">strtabs module</a> for efficient hash tables mapping from strings to strings</li>
|
|
<li><a class="reference external" href="hashes.html">hashes module</a> for helper functions for hashing</li>
|
|
</ul>
|
|
</p>
|
|
<div class="section" id="6">
|
|
<h1><a class="toc-backref" href="#6">Imports</a></h1>
|
|
<dl class="item">
|
|
<a class="reference external" href="since.html">since</a>, <a class="reference external" href="hashes.html">hashes</a>, <a class="reference external" href="math.html">math</a>, <a class="reference external" href="algorithm.html">algorithm</a>, <a class="reference external" href="assertions.html">assertions</a>, <a class="reference external" href="outparams.html">outparams</a>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="7">
|
|
<h1><a class="toc-backref" href="#7">Types</a></h1>
|
|
<dl class="item">
|
|
<div id="CountTable">
|
|
<dt><pre><a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Hash table that counts the number of each key. Unlike <a class="reference external" href="#Table">Table</a>, this uses a zero count to signal "empty" & so does not cache hash values for comparison reduction or resize acceleration.</p>
|
|
<p>For creating an empty CountTable, use <a class="reference external" href="#initCountTable">initCountTable proc</a>.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2337" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2337" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="CountTableRef">
|
|
<dt><pre><a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Ref version of <a class="reference external" href="#CountTable">CountTable</a>.</p>
|
|
<p>For creating a new empty CountTableRef, use <a class="reference external" href="#newCountTable">newCountTable proc</a>.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2347" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2347" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="OrderedTable">
|
|
<dt><pre><a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">B</span><span class="Other">]</span> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Hash table that remembers insertion order.</p>
|
|
<p>For creating an empty OrderedTable, use <a class="reference external" href="#initOrderedTable">initOrderedTable proc</a>.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1335" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1335" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="OrderedTableRef">
|
|
<dt><pre><a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">B</span><span class="Other">]</span> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Ref version of <a class="reference external" href="#OrderedTable">OrderedTable</a>.</p>
|
|
<p>For creating a new empty OrderedTableRef, use <a class="reference external" href="#newOrderedTable">newOrderedTable proc</a>.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1342" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1342" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="Table">
|
|
<dt><pre><a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">B</span><span class="Other">]</span> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Generic hash table, consisting of a key-value pair.</p>
|
|
<p><tt class="docutils literal"><span class="pre"><span class="Identifier">data</span></span></tt> and <tt class="docutils literal"><span class="pre"><span class="Identifier">counter</span></span></tt> are internal implementation details which can't be accessed.</p>
|
|
<p>For creating an empty Table, use <a class="reference external" href="#initTable">initTable proc</a>.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L206" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L206" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="TableRef">
|
|
<dt><pre><a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">B</span><span class="Other">]</span> <span class="Other">=</span> <span class="Keyword">ref</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Ref version of <a class="reference external" href="#Table">Table</a>.</p>
|
|
<p>For creating a new empty TableRef, use <a class="reference external" href="#newTable">newTable proc</a>.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L215" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L215" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="10">
|
|
<h1><a class="toc-backref" href="#10">Consts</a></h1>
|
|
<dl class="item">
|
|
<div id="defaultInitialSize">
|
|
<dt><pre><a href="tables.html#defaultInitialSize"><span class="Identifier">defaultInitialSize</span></a> <span class="Other">=</span> <span class="DecNumber">32</span></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tableimpl.nim#L15" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tableimpl.nim#L15" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="12">
|
|
<h1><a class="toc-backref" href="#12">Procs</a></h1>
|
|
<dl class="item">
|
|
<div id="$-procs-all">
|
|
<div id="$,OrderedTable[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%24%2COrderedTable%5BA%2CB%5D"><span class="Identifier">`$`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt>
|
|
<dd>
|
|
|
|
The <tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt> operator for ordered hash tables. Used internally when calling <tt class="docutils literal"><span class="pre"><span class="Identifier">echo</span></span></tt> on a table.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1760" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1760" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="$,OrderedTableRef[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%24%2COrderedTableRef%5BA%2CB%5D"><span class="Identifier">`$`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt>
|
|
<dd>
|
|
|
|
The <tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt> operator for hash tables. Used internally when calling <tt class="docutils literal"><span class="pre"><span class="Identifier">echo</span></span></tt> on a table.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2194" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2194" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="$,Table[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%24%2CTable%5BA%2CB%5D"><span class="Identifier">`$`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt>
|
|
<dd>
|
|
|
|
The <tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt> operator for hash tables. Used internally when calling <tt class="docutils literal"><span class="pre"><span class="Identifier">echo</span></span></tt> on a table.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L579" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L579" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="$,TableRef[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%24%2CTableRef%5BA%2CB%5D"><span class="Identifier">`$`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt>
|
|
<dd>
|
|
|
|
The <tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt> operator for hash tables. Used internally when calling <tt class="docutils literal"><span class="pre"><span class="Identifier">echo</span></span></tt> on a table.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1183" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1183" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="$,CountTable[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%24%2CCountTable%5BA%5D"><span class="Identifier">`$`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt>
|
|
<dd>
|
|
|
|
The <tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt> operator for count tables. Used internally when calling <tt class="docutils literal"><span class="pre"><span class="Identifier">echo</span></span></tt> on a table.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2614" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2614" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="$,CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%24%2CCountTableRef%5BA%5D"><span class="Identifier">`$`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#string"><span class="Identifier">string</span></a></pre></dt>
|
|
<dd>
|
|
|
|
The <tt class="docutils literal"><span class="pre"><span class="Operator">$</span></span></tt> operator for count tables. Used internally when calling <tt class="docutils literal"><span class="pre"><span class="Identifier">echo</span></span></tt> on a table.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2888" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2888" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="==-procs-all">
|
|
<div id="==,OrderedTable[A,B],OrderedTable[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2COrderedTable%5BA%2CB%5D%2COrderedTable%5BA%2CB%5D"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
The <tt class="docutils literal"><span class="pre"><span class="Operator">==</span></span></tt> operator for ordered hash tables. Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt> if both the content and the order are equal.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toOrderedTable</span>
|
|
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13, '</span><span class="Identifier">a</span><span class="CharLit">': 5}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">!=</span> <span class="Identifier">b</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1765" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1765" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="==,OrderedTableRef[A,B],OrderedTableRef[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2COrderedTableRef%5BA%2CB%5D%2COrderedTableRef%5BA%2CB%5D"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
The <tt class="docutils literal"><span class="pre"><span class="Operator">==</span></span></tt> operator for ordered hash tables. Returns true if either both tables are <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt>, or neither is <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt> and the content and the order of both are equal.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newOrderedTable</span>
|
|
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13, '</span><span class="Identifier">a</span><span class="CharLit">': 5}.newOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">!=</span> <span class="Identifier">b</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2199" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2199" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="==,Table[A,B],Table[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CTable%5BA%2CB%5D%2CTable%5BA%2CB%5D"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
The <tt class="docutils literal"><span class="pre"><span class="Operator">==</span></span></tt> operator for hash tables. Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt> if the content of both tables contains the same key-value pairs. Insert order does not matter.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toTable</span>
|
|
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13, '</span><span class="Identifier">a</span><span class="CharLit">': 5}.toTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">b</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L584" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L584" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="==,TableRef[A,B],TableRef[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CTableRef%5BA%2CB%5D%2CTableRef%5BA%2CB%5D"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
The <tt class="docutils literal"><span class="pre"><span class="Operator">==</span></span></tt> operator for hash tables. Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt> if either both tables are <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt>, or neither is <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt> and the content of both tables contains the same key-value pairs. Insert order does not matter.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newTable</span>
|
|
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13, '</span><span class="Identifier">a</span><span class="CharLit">': 5}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">b</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1188" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1188" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="==,CountTable[A],CountTable[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CCountTable%5BA%5D%2CCountTable%5BA%5D"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
The <tt class="docutils literal"><span class="pre"><span class="Operator">==</span></span></tt> operator for count tables. Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt> if both tables contain the same keys with the same count. Insert order does not matter.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2619" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2619" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="==,CountTableRef[A],CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%3D%3D%2CCountTableRef%5BA%5D%2CCountTableRef%5BA%5D"><span class="Identifier">`==`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
The <tt class="docutils literal"><span class="pre"><span class="Operator">==</span></span></tt> operator for count tables. Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt> if either both tables are <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt>, or neither is <tt class="docutils literal"><span class="pre"><span class="Keyword">nil</span></span></tt> and both contain the same keys with the same count. Insert order does not matter.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2893" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2893" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="[]-procs-all">
|
|
<div id="[],OrderedTable[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2COrderedTable%5BA%2CB%5D%2CA"><span class="Identifier">`[]`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#lent"><span class="Identifier">lent</span></a> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt>.</p>
|
|
<p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is not in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>, the <tt class="docutils literal"><span class="pre"><span class="Identifier">KeyError</span></span></tt> exception is raised. One can check with <a class="reference external" href="#hasKey,OrderedTable[A,B],A">hasKey proc</a> whether the key exists.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#getOrDefault,OrderedTable[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTable[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#[]=,OrderedTable[A,B],A,sinkB">[]= proc</a> for inserting a new (key, value) pair in the table</li>
|
|
<li><a class="reference external" href="#hasKey,OrderedTable[A,B],A">hasKey proc</a> for checking if a key is in the table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">'] == 5</span>
|
|
<span class="Identifier">doAssertRaises</span><span class="Punctuation">(</span><span class="Identifier">KeyError</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">echo</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">']</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1447" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1447" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[],OrderedTableRef[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2COrderedTableRef%5BA%2CB%5D%2CA"><span class="Identifier">`[]`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt>.</p>
|
|
<p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is not in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>, the <tt class="docutils literal"><span class="pre"><span class="Identifier">KeyError</span></span></tt> exception is raised. One can check with <a class="reference external" href="#hasKey,OrderedTableRef[A,B],A">hasKey proc</a> whether the key exists.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#getOrDefault,OrderedTableRef[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTableRef[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#[]=,OrderedTableRef[A,B],A,sinkB">[]= proc</a> for inserting a new (key, value) pair in the table</li>
|
|
<li><a class="reference external" href="#hasKey,OrderedTableRef[A,B],A">hasKey proc</a> for checking if a key is in the table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">'] == 5</span>
|
|
<span class="Identifier">doAssertRaises</span><span class="Punctuation">(</span><span class="Identifier">KeyError</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">echo</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">']</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1949" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1949" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[],Table[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CTable%5BA%2CB%5D%2CA"><span class="Identifier">`[]`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#lent"><span class="Identifier">lent</span></a> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt>.</p>
|
|
<p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is not in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>, the <tt class="docutils literal"><span class="pre"><span class="Identifier">KeyError</span></span></tt> exception is raised. One can check with <a class="reference external" href="#hasKey,Table[A,B],A">hasKey proc</a> whether the key exists.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#getOrDefault,Table[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,Table[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#[]=,Table[A,B],A,sinkB">[]= proc</a> for inserting a new (key, value) pair in the table</li>
|
|
<li><a class="reference external" href="#hasKey,Table[A,B],A">hasKey proc</a> for checking if a key is in the table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">'] == 5</span>
|
|
<span class="Identifier">doAssertRaises</span><span class="Punctuation">(</span><span class="Identifier">KeyError</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">echo</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">']</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L316" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L316" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[],TableRef[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CTableRef%5BA%2CB%5D%2CA"><span class="Identifier">`[]`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt>.</p>
|
|
<p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is not in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>, the <tt class="docutils literal"><span class="pre"><span class="Identifier">KeyError</span></span></tt> exception is raised. One can check with <a class="reference external" href="#hasKey,TableRef[A,B],A">hasKey proc</a> whether the key exists.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#getOrDefault,TableRef[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,TableRef[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#[]=,TableRef[A,B],A,sinkB">[]= proc</a> for inserting a new (key, value) pair in the table</li>
|
|
<li><a class="reference external" href="#hasKey,TableRef[A,B],A">hasKey proc</a> for checking if a key is in the table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">'] == 5</span>
|
|
<span class="Identifier">doAssertRaises</span><span class="Punctuation">(</span><span class="Identifier">KeyError</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">echo</span> <span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">']</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L929" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L929" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[],OrderedTable[A,B],A_2">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2COrderedTable%5BA%2CB%5D%2CA_2"><span class="Identifier">`[]`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt>. The value can be modified.</p>
|
|
<p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is not in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>, the <tt class="docutils literal"><span class="pre"><span class="Identifier">KeyError</span></span></tt> exception is raised.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#getOrDefault,OrderedTable[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTable[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#[]=,OrderedTable[A,B],A,sinkB">[]= proc</a> for inserting a new (key, value) pair in the table</li>
|
|
<li><a class="reference external" href="#hasKey,OrderedTable[A,B],A">hasKey proc</a> for checking if a key is in the table</li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1471" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1471" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[],Table[A,B],A_2">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CTable%5BA%2CB%5D%2CA_2"><span class="Identifier">`[]`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt>. The value can be modified.</p>
|
|
<p>If <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is not in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>, the <tt class="docutils literal"><span class="pre"><span class="Identifier">KeyError</span></span></tt> exception is raised.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#getOrDefault,Table[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,Table[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#[]=,Table[A,B],A,sinkB">[]= proc</a> for inserting a new (key, value) pair in the table</li>
|
|
<li><a class="reference external" href="#hasKey,Table[A,B],A">hasKey proc</a> for checking if a key is in the table</li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L339" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L339" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[],CountTable[A],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CCountTable%5BA%5D%2CA"><span class="Identifier">`[]`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Otherwise <tt class="docutils literal"><span class="pre"><span class="DecNumber">0</span></span></tt> is returned.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#getOrDefault,CountTable[A],A,int">getOrDefault</a> to return a custom value if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#[]%3D,CountTable[A],A,int">[]= proc</a> for inserting a new (key, value) pair in the table</li>
|
|
<li><a class="reference external" href="#hasKey,CountTable[A],A">hasKey proc</a> for checking if a key is in the table</li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2406" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2406" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[],CountTableRef[A],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%2CCountTableRef%5BA%5D%2CA"><span class="Identifier">`[]`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Otherwise <tt class="docutils literal"><span class="pre"><span class="DecNumber">0</span></span></tt> is returned.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#getOrDefault,CountTableRef[A],A,int">getOrDefault</a> to return a custom value if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#inc,CountTableRef[A],A,int">inc proc</a> to inc even if missing</li>
|
|
<li><a class="reference external" href="#[]%3D,CountTableRef[A],A,int">[]= proc</a> for inserting a new (key, value) pair in the table</li>
|
|
<li><a class="reference external" href="#hasKey,CountTableRef[A],A">hasKey proc</a> for checking if a key is in the table</li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2760" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2760" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="[]=-procs-all">
|
|
<div id="[]=,OrderedTableRef[A,B],sinkA,sinkB">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2COrderedTableRef%5BA%2CB%5D%2CsinkA%2CsinkB"><span class="Identifier">`[]=`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">B</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Inserts a <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair into <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],OrderedTableRef[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,OrderedTableRef[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#mgetOrPut,OrderedTableRef[A,B],A,B">mgetOrPut proc</a></li>
|
|
<li><a class="reference external" href="#del,OrderedTableRef[A,B],A">del proc</a> for removing a key from the table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">newOrderedTable</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">,</span> <span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">x</span><span class="CharLit">'] = 7</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">y</span><span class="CharLit">'] = 33</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">x</span><span class="CharLit">': 7, '</span><span class="Identifier">y</span><span class="CharLit">': 33}.newOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1972" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1972" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[]=,TableRef[A,B],sinkA,sinkB">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CTableRef%5BA%2CB%5D%2CsinkA%2CsinkB"><span class="Identifier">`[]=`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">B</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Inserts a <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair into <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],TableRef[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,TableRef[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#mgetOrPut,TableRef[A,B],A,B">mgetOrPut proc</a></li>
|
|
<li><a class="reference external" href="#del,TableRef[A,B],A">del proc</a> for removing a key from the table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">newTable</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">,</span> <span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">x</span><span class="CharLit">'] = 7</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">y</span><span class="CharLit">'] = 33</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">x</span><span class="CharLit">': 7, '</span><span class="Identifier">y</span><span class="CharLit">': 33}.newTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L953" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L953" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[]=,OrderedTable[A,B],sinkA,sinkB">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2COrderedTable%5BA%2CB%5D%2CsinkA%2CsinkB"><span class="Identifier">`[]=`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">B</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Inserts a <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair into <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],OrderedTable[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,OrderedTable[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#mgetOrPut,OrderedTable[A,B],A,B">mgetOrPut proc</a></li>
|
|
<li><a class="reference external" href="#del,OrderedTable[A,B],A">del proc</a> for removing a key from the table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">initOrderedTable</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">,</span> <span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">x</span><span class="CharLit">'] = 7</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">y</span><span class="CharLit">'] = 33</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">x</span><span class="CharLit">': 7, '</span><span class="Identifier">y</span><span class="CharLit">': 33}.toOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1414" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1414" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[]=,Table[A,B],sinkA,sinkB">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CTable%5BA%2CB%5D%2CsinkA%2CsinkB"><span class="Identifier">`[]=`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">B</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Inserts a <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair into <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],Table[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,Table[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#mgetOrPut,Table[A,B],A,B">mgetOrPut proc</a></li>
|
|
<li><a class="reference external" href="#del,Table[A,B],A">del proc</a> for removing a key from the table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">initTable</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">,</span> <span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">x</span><span class="CharLit">'] = 7</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">y</span><span class="CharLit">'] = 33</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">x</span><span class="CharLit">': 7, '</span><span class="Identifier">y</span><span class="CharLit">': 33}.toTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L284" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L284" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[]=,CountTableRef[A],A,int">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CCountTableRef%5BA%5D%2CA%2Cint"><span class="Identifier">`[]=`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Inserts a <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair into <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],CountTableRef[A],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#inc,CountTableRef[A],A,int">inc proc</a> for incrementing a value of a key</li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2774" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2774" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="[]=,CountTable[A],A,int">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#%5B%5D%3D%2CCountTable%5BA%5D%2CA%2Cint"><span class="Identifier">`[]=`</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Inserts a <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair into <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],CountTable[A],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#inc,CountTable[A],A,int">inc proc</a> for incrementing a value of a key</li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2424" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2424" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="add-procs-all">
|
|
<div id="add,OrderedTableRef[A,B],sinkA,sinkB">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#add%2COrderedTableRef%5BA%2CB%5D%2CsinkA%2CsinkB"><span class="Identifier">add</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">B</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"Deprecated since v1.4; it was more confusing than useful, use `[]=`"</span></span>.}</pre></dt>
|
|
<dd>
|
|
<div class="deprecation-message">
|
|
<b>Deprecated:</b> Deprecated since v1.4; it was more confusing than useful, use `[]=`
|
|
</div>
|
|
|
|
<p>Puts a new <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair into <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> even if <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> already exists.</p>
|
|
<p><strong>This can introduce duplicate keys into the table!</strong></p>
|
|
<p>Use <a class="reference external" href="#[]=,OrderedTableRef[A,B],A,sinkB">[]= proc</a> for inserting a new (key, value) pair in the table without introducing duplicates.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2113" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2113" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="add,TableRef[A,B],sinkA,sinkB">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#add%2CTableRef%5BA%2CB%5D%2CsinkA%2CsinkB"><span class="Identifier">add</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">B</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"Deprecated since v1.4; it was more confusing than useful, use `[]=`"</span></span>.}</pre></dt>
|
|
<dd>
|
|
<div class="deprecation-message">
|
|
<b>Deprecated:</b> Deprecated since v1.4; it was more confusing than useful, use `[]=`
|
|
</div>
|
|
|
|
<p>Puts a new <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair into <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> even if <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> already exists.</p>
|
|
<p><strong>This can introduce duplicate keys into the table!</strong></p>
|
|
<p>Use <a class="reference external" href="#[]=,TableRef[A,B],A,sinkB">[]= proc</a> for inserting a new (key, value) pair in the table without introducing duplicates.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1110" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1110" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="add,OrderedTable[A,B],sinkA,sinkB">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#add%2COrderedTable%5BA%2CB%5D%2CsinkA%2CsinkB"><span class="Identifier">add</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">B</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"Deprecated since v1.4; it was more confusing than useful, use `[]=`"</span></span>.}</pre></dt>
|
|
<dd>
|
|
<div class="deprecation-message">
|
|
<b>Deprecated:</b> Deprecated since v1.4; it was more confusing than useful, use `[]=`
|
|
</div>
|
|
|
|
<p>Puts a new <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair into <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> even if <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> already exists.</p>
|
|
<p><strong>This can introduce duplicate keys into the table!</strong></p>
|
|
<p>Use <a class="reference external" href="#[]=,OrderedTable[A,B],A,sinkB">[]= proc</a> for inserting a new (key, value) pair in the table without introducing duplicates.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1612" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1612" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="add,Table[A,B],sinkA,sinkB">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#add%2CTable%5BA%2CB%5D%2CsinkA%2CsinkB"><span class="Identifier">add</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#sink"><span class="Identifier">sink</span></a> <span class="Identifier">B</span><span class="Other">)</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"Deprecated since v1.4; it was more confusing than useful, use `[]=`"</span></span>.}</pre></dt>
|
|
<dd>
|
|
<div class="deprecation-message">
|
|
<b>Deprecated:</b> Deprecated since v1.4; it was more confusing than useful, use `[]=`
|
|
</div>
|
|
|
|
<p>Puts a new <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair into <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> even if <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> already exists.</p>
|
|
<p><strong>This can introduce duplicate keys into the table!</strong></p>
|
|
<p>Use <a class="reference external" href="#[]=,Table[A,B],A,sinkB">[]= proc</a> for inserting a new (key, value) pair in the table without introducing duplicates.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L497" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L497" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="clear-procs-all">
|
|
<div id="clear,OrderedTableRef[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#clear%2COrderedTableRef%5BA%2CB%5D"><span class="Identifier">clear</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Resets the table so that it is empty.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#del,OrderedTableRef[A,B],A">del proc</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">3</span>
|
|
<span class="Identifier">clear</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2160" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2160" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="clear,TableRef[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#clear%2CTableRef%5BA%2CB%5D"><span class="Identifier">clear</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Resets the table so that it is empty.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#del,Table[A,B],A">del proc</a></li>
|
|
<li><a class="reference external" href="#pop,Table[A,B],A,B">pop proc</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">3</span>
|
|
<span class="Identifier">clear</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1169" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1169" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="clear,OrderedTable[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#clear%2COrderedTable%5BA%2CB%5D"><span class="Identifier">clear</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Resets the table so that it is empty.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#del,OrderedTable[A,B],A">del proc</a></li>
|
|
<li><a class="reference external" href="#pop,OrderedTable[A,B],A,B">pop proc</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">3</span>
|
|
<span class="Identifier">clear</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1685" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1685" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="clear,Table[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#clear%2CTable%5BA%2CB%5D"><span class="Identifier">clear</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Resets the table so that it is empty.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#del,Table[A,B],A">del proc</a></li>
|
|
<li><a class="reference external" href="#pop,Table[A,B],A,B">pop proc</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">3</span>
|
|
<span class="Identifier">clear</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">0</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L565" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L565" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="clear,CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#clear%2CCountTableRef%5BA%5D"><span class="Identifier">clear</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Resets the table so that it is empty.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#del,CountTableRef[A],A">del proc</a></li>
|
|
<li><a class="reference external" href="#pop,CountTableRef[A],A,int">pop proc</a></li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2858" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2858" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="clear,CountTable[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#clear%2CCountTable%5BA%5D"><span class="Identifier">clear</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Resets the table so that it is empty.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#del,CountTable[A],A">del proc</a></li>
|
|
<li><a class="reference external" href="#pop,CountTable[A],A,int">pop proc</a></li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2555" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2555" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="contains-procs-all">
|
|
<div id="contains,OrderedTable[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#contains%2COrderedTable%5BA%2CB%5D%2CA"><span class="Identifier">contains</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Alias of <a class="reference external" href="#hasKey,OrderedTable[A,B],A">hasKey proc</a> for use with the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="CharLit">'b'</span> <span class="Keyword">in</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">true</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">contains</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">') == false</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1506" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1506" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="contains,OrderedTableRef[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#contains%2COrderedTableRef%5BA%2CB%5D%2CA"><span class="Identifier">contains</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Alias of <a class="reference external" href="#hasKey,OrderedTableRef[A,B],A">hasKey proc</a> for use with the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="CharLit">'b'</span> <span class="Keyword">in</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">true</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">contains</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">') == false</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2006" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2006" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="contains,Table[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#contains%2CTable%5BA%2CB%5D%2CA"><span class="Identifier">contains</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Alias of <a class="reference external" href="#hasKey,Table[A,B],A">hasKey proc</a> for use with the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="CharLit">'b'</span> <span class="Keyword">in</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">true</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">contains</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">') == false</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L373" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L373" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="contains,TableRef[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#contains%2CTableRef%5BA%2CB%5D%2CA"><span class="Identifier">contains</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Alias of <a class="reference external" href="#hasKey,TableRef[A,B],A">hasKey proc</a> for use with the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="CharLit">'b'</span> <span class="Keyword">in</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">true</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">contains</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">') == false</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L987" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L987" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="contains,CountTable[A],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#contains%2CCountTable%5BA%5D%2CA"><span class="Identifier">contains</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Alias of <a class="reference external" href="#hasKey,CountTable[A],A">hasKey proc</a> for use with the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2499" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2499" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="contains,CountTableRef[A],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#contains%2CCountTableRef%5BA%5D%2CA"><span class="Identifier">contains</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Alias of <a class="reference external" href="#hasKey,CountTableRef[A],A">hasKey proc</a> for use with the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2820" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2820" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="del-procs-all">
|
|
<div id="del,OrderedTableRef[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#del%2COrderedTableRef%5BA%2CB%5D%2CA"><span class="Identifier">del</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Deletes <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> from hash table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Does nothing if the key does not exist.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#clear,OrderedTableRef[A,B]">clear proc</a> to empty the whole table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newOrderedTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">')</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newOrderedTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">')</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2123" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2123" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="del,TableRef[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#del%2CTableRef%5BA%2CB%5D%2CA"><span class="Identifier">del</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
Deletes <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> from hash table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Does nothing if the key does not exist.<div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
|
|
If duplicate keys were added (via the now deprecated <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt> proc), this may need to be called multiple times.</div>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pop,TableRef[A,B],A,B">pop proc</a></li>
|
|
<li><a class="reference external" href="#clear,TableRef[A,B]">clear proc</a> to empty the whole table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">')</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">')</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1120" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1120" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="del,OrderedTable[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#del%2COrderedTable%5BA%2CB%5D%2CA"><span class="Identifier">del</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Deletes <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> from hash table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Does nothing if the key does not exist.</p>
|
|
<p>O(n) complexity.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pop,OrderedTable[A,B],A,B">pop proc</a></li>
|
|
<li><a class="reference external" href="#clear,OrderedTable[A,B]">clear proc</a> to empty the whole table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toOrderedTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">')</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toOrderedTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">')</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1622" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1622" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="del,Table[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#del%2CTable%5BA%2CB%5D%2CA"><span class="Identifier">del</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
Deletes <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> from hash table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Does nothing if the key does not exist.<div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
|
|
If duplicate keys were added (via the now deprecated <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt> proc), this may need to be called multiple times.</div>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pop,Table[A,B],A,B">pop proc</a></li>
|
|
<li><a class="reference external" href="#clear,Table[A,B]">clear proc</a> to empty the whole table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">')</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">')</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L511" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L511" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="del,CountTableRef[A],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#del%2CCountTableRef%5BA%5D%2CA"><span class="Identifier">del</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Deletes <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> from table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Does nothing if the key does not exist.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pop,CountTableRef[A],A,int">pop proc</a></li>
|
|
<li><a class="reference external" href="#clear,CountTableRef[A]">clear proc</a> to empty the whole table</li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2839" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2839" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="del,CountTable[A],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#del%2CCountTable%5BA%5D%2CA"><span class="Identifier">del</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Deletes <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> from table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Does nothing if the key does not exist.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pop,CountTable[A],A,int">pop proc</a></li>
|
|
<li><a class="reference external" href="#clear,CountTable[A]">clear proc</a> to empty the whole table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aabbbccccc"</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">')</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aaccccc"</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">')</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aaccccc"</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">del</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">')</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aa"</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2514" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2514" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="getOrDefault-procs-all">
|
|
<div id="getOrDefault,OrderedTable[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2COrderedTable%5BA%2CB%5D%2CA"><span class="Identifier">getOrDefault</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Otherwise, the default initialization value for type <tt class="docutils literal"><span class="pre"><span class="Identifier">B</span></span></tt> is returned (e.g. 0 for any integer type).</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],OrderedTable[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,OrderedTable[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,OrderedTable[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#mgetOrPut,OrderedTable[A,B],A,B">mgetOrPut proc</a></li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTable[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == 5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">') == 0</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1536" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1536" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="getOrDefault,OrderedTable[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2COrderedTable%5BA%2CB%5D%2CA%2CB"><span class="Identifier">getOrDefault</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">def</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Otherwise, <tt class="docutils literal"><span class="pre"><span class="Identifier">def</span></span></tt> is returned.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],OrderedTable[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,OrderedTable[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,OrderedTable[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#mgetOrPut,OrderedTable[A,B],A,B">mgetOrPut proc</a></li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTable[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 99) == 5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 99) == 99</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1555" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1555" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="getOrDefault,OrderedTableRef[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2COrderedTableRef%5BA%2CB%5D%2CA"><span class="Identifier">getOrDefault</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Otherwise, the default initialization value for type <tt class="docutils literal"><span class="pre"><span class="Identifier">B</span></span></tt> is returned (e.g. 0 for any integer type).</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],OrderedTableRef[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,OrderedTableRef[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,OrderedTableRef[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#mgetOrPut,OrderedTableRef[A,B],A,B">mgetOrPut proc</a></li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTableRef[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == 5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">') == 0</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2036" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2036" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="getOrDefault,OrderedTableRef[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2COrderedTableRef%5BA%2CB%5D%2CA%2CB"><span class="Identifier">getOrDefault</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">def</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Otherwise, <tt class="docutils literal"><span class="pre"><span class="Identifier">def</span></span></tt> is returned.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],OrderedTableRef[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,OrderedTableRef[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,OrderedTableRef[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#mgetOrPut,OrderedTableRef[A,B],A,B">mgetOrPut proc</a></li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTableRef[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 99) == 5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 99) == 99</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2055" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2055" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="getOrDefault,Table[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2CTable%5BA%2CB%5D%2CA"><span class="Identifier">getOrDefault</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Otherwise, the default initialization value for type <tt class="docutils literal"><span class="pre"><span class="Identifier">B</span></span></tt> is returned (e.g. 0 for any integer type).</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],Table[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,Table[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,Table[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#mgetOrPut,Table[A,B],A,B">mgetOrPut proc</a></li>
|
|
<li><a class="reference external" href="#getOrDefault,Table[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == 5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">') == 0</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L403" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L403" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="getOrDefault,Table[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2CTable%5BA%2CB%5D%2CA%2CB"><span class="Identifier">getOrDefault</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">def</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Otherwise, <tt class="docutils literal"><span class="pre"><span class="Identifier">def</span></span></tt> is returned.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],Table[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,Table[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,Table[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#mgetOrPut,Table[A,B],A,B">mgetOrPut proc</a></li>
|
|
<li><a class="reference external" href="#getOrDefault,Table[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 99) == 5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 99) == 99</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L422" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L422" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="getOrDefault,TableRef[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2CTableRef%5BA%2CB%5D%2CA"><span class="Identifier">getOrDefault</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Otherwise, the default initialization value for type <tt class="docutils literal"><span class="pre"><span class="Identifier">B</span></span></tt> is returned (e.g. 0 for any integer type).</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],TableRef[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,TableRef[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,TableRef[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#mgetOrPut,TableRef[A,B],A,B">mgetOrPut proc</a></li>
|
|
<li><a class="reference external" href="#getOrDefault,TableRef[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == 5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">') == 0</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1017" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1017" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="getOrDefault,TableRef[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2CTableRef%5BA%2CB%5D%2CA%2CB"><span class="Identifier">getOrDefault</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">def</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Otherwise, <tt class="docutils literal"><span class="pre"><span class="Identifier">def</span></span></tt> is returned.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],TableRef[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,TableRef[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,TableRef[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#mgetOrPut,TableRef[A,B],A,B">mgetOrPut proc</a></li>
|
|
<li><a class="reference external" href="#getOrDefault,TableRef[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 99) == 5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">getOrDefault</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 99) == 99</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1036" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1036" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="getOrDefault,CountTable[A],A,int">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2CCountTable%5BA%5D%2CA%2Cint"><span class="Identifier">getOrDefault</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">def</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Otherwise, the integer value of <tt class="docutils literal"><span class="pre"><span class="Identifier">def</span></span></tt> is returned.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],CountTable[A],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,CountTable[A],A">hasKey proc</a> for checking if a key is in the table</li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2504" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2504" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="getOrDefault,CountTableRef[A],A,int">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#getOrDefault%2CCountTableRef%5BA%5D%2CA%2Cint"><span class="Identifier">getOrDefault</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">def</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. Otherwise, the integer value of <tt class="docutils literal"><span class="pre"><span class="Identifier">def</span></span></tt> is returned.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],CountTableRef[A],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,CountTableRef[A],A">hasKey proc</a> for checking if a key is in the table</li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2825" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2825" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="hash-procs-all">
|
|
<div id="hash,OrderedTable[K,V]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hash%2COrderedTable%5BK%2CV%5D"><span class="Identifier">hash</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="hashes.html#Hash"><span class="Identifier">Hash</span></a></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L3015" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L3015" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="hash,Table[K,V]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hash%2CTable%5BK%2CV%5D"><span class="Identifier">hash</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">K</span><span class="Other">,</span> <span class="Identifier">V</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="hashes.html#Hash"><span class="Identifier">Hash</span></a></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L3009" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L3009" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="hash,CountTable[V]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hash%2CCountTable%5BV%5D"><span class="Identifier">hash</span></a><span class="Other">[</span><span class="Identifier">V</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">V</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="hashes.html#Hash"><span class="Identifier">Hash</span></a></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L3021" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L3021" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="hasKey-procs-all">
|
|
<div id="hasKey,OrderedTable[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hasKey%2COrderedTable%5BA%2CB%5D%2CA"><span class="Identifier">hasKey</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#contains,OrderedTable[A,B],A">contains proc</a> for use with the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator</li>
|
|
<li><a class="reference external" href="#[],OrderedTable[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTable[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTable[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKey</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == true</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKey</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">') == false</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1487" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1487" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="hasKey,OrderedTableRef[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hasKey%2COrderedTableRef%5BA%2CB%5D%2CA"><span class="Identifier">hasKey</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#contains,OrderedTableRef[A,B],A">contains proc</a> for use with the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator</li>
|
|
<li><a class="reference external" href="#[],OrderedTableRef[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTableRef[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTableRef[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKey</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == true</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKey</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">') == false</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1988" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1988" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="hasKey,Table[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hasKey%2CTable%5BA%2CB%5D%2CA"><span class="Identifier">hasKey</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#contains,Table[A,B],A">contains proc</a> for use with the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator</li>
|
|
<li><a class="reference external" href="#[],Table[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#getOrDefault,Table[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,Table[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKey</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == true</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKey</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">') == false</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L355" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L355" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="hasKey,TableRef[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hasKey%2CTableRef%5BA%2CB%5D%2CA"><span class="Identifier">hasKey</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#contains,TableRef[A,B],A">contains proc</a> for use with the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator</li>
|
|
<li><a class="reference external" href="#[],TableRef[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#getOrDefault,TableRef[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,TableRef[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKey</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == true</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKey</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">') == false</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L969" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L969" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="hasKey,CountTable[A],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hasKey%2CCountTable%5BA%5D%2CA"><span class="Identifier">hasKey</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#contains,CountTable[A],A">contains proc</a> for use with the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator</li>
|
|
<li><a class="reference external" href="#[],CountTable[A],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#getOrDefault,CountTable[A],A,int">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2487" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2487" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="hasKey,CountTableRef[A],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hasKey%2CCountTableRef%5BA%5D%2CA"><span class="Identifier">hasKey</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#contains,CountTableRef[A],A">contains proc</a> for use with the <tt class="docutils literal"><span class="pre"><span class="Keyword">in</span></span></tt> operator</li>
|
|
<li><a class="reference external" href="#[],CountTableRef[A],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#getOrDefault,CountTableRef[A],A,int">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2809" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2809" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="hasKeyOrPut-procs-all">
|
|
<div id="hasKeyOrPut,OrderedTableRef[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hasKeyOrPut%2COrderedTableRef%5BA%2CB%5D%2CA%2CB"><span class="Identifier">hasKeyOrPut</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in the table, otherwise inserts <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#hasKey,OrderedTableRef[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#[],OrderedTableRef[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTableRef[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTableRef[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newOrderedTable</span>
|
|
<span class="Keyword">if</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKeyOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 50):</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">'] = 99</span>
|
|
<span class="Keyword">if</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKeyOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 50):</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">'] = 99</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 99, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">z</span><span class="CharLit">': 50}.newOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2016" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2016" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="hasKeyOrPut,TableRef[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hasKeyOrPut%2CTableRef%5BA%2CB%5D%2CA%2CB"><span class="Identifier">hasKeyOrPut</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in the table, otherwise inserts <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#hasKey,TableRef[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#[],TableRef[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#getOrDefault,TableRef[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,TableRef[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newTable</span>
|
|
<span class="Keyword">if</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKeyOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 50):</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">'] = 99</span>
|
|
<span class="Keyword">if</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKeyOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 50):</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">'] = 99</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 99, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">z</span><span class="CharLit">': 50}.newTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L997" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L997" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="hasKeyOrPut,OrderedTable[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hasKeyOrPut%2COrderedTable%5BA%2CB%5D%2CA%2CB"><span class="Identifier">hasKeyOrPut</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in the table, otherwise inserts <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#hasKey,OrderedTable[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#[],OrderedTable[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTable[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTable[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toOrderedTable</span>
|
|
<span class="Keyword">if</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKeyOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 50):</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">'] = 99</span>
|
|
<span class="Keyword">if</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKeyOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 50):</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">'] = 99</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 99, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">z</span><span class="CharLit">': 50}.toOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1516" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1516" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="hasKeyOrPut,Table[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#hasKeyOrPut%2CTable%5BA%2CB%5D%2CA%2CB"><span class="Identifier">hasKeyOrPut</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns true if <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> is in the table, otherwise inserts <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#hasKey,Table[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#[],Table[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#getOrDefault,Table[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,Table[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toTable</span>
|
|
<span class="Keyword">if</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKeyOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 50):</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">'] = 99</span>
|
|
<span class="Keyword">if</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">hasKeyOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 50):</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">'] = 99</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 99, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">z</span><span class="CharLit">': 50}.toTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L383" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L383" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="inc-procs-all">
|
|
<div id="inc,CountTableRef[A],A,int">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#inc%2CCountTableRef%5BA%5D%2CA%2Cint"><span class="Identifier">inc</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2739" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2739" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="inc,CountTable[A],A,int">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#inc%2CCountTable%5BA%5D%2CA%2Cint"><span class="Identifier">inc</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2383" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2383" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="indexBy-procs-all">
|
|
<div id="indexBy,A,proc(B)">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#indexBy%2CA%2Cproc%28B%29"><span class="Identifier">indexBy</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">,</span> <span class="Identifier">C</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">collection</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">index</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">C</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">C</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
Index the collection with the proc provided.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L595" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L595" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="initCountTable-procs-all">
|
|
<div id="initCountTable">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#initCountTable"><span class="Identifier">initCountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">initialSize</span> <span class="Other">=</span> <span class="Identifier">defaultInitialSize</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Creates a new count table that is empty.</p>
|
|
<p>Starting from Nim v0.20, tables are initialized by default and it is not necessary to call this function explicitly.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#toCountTable,openArray[A]">toCountTable proc</a></li>
|
|
<li><a class="reference external" href="#newCountTable">newCountTable proc</a> for creating a <tt class="docutils literal"><span class="pre"><span class="Identifier">CountTableRef</span></span></tt></li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2387" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2387" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="initOrderedTable-procs-all">
|
|
<div id="initOrderedTable">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#initOrderedTable"><span class="Identifier">initOrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">initialSize</span> <span class="Other">=</span> <span class="Identifier">defaultInitialSize</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Creates a new ordered hash table that is empty.</p>
|
|
<p>Starting from Nim v0.20, tables are initialized by default and it is not necessary to call this function explicitly.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#toOrderedTable,openArray[]">toOrderedTable proc</a></li>
|
|
<li><a class="reference external" href="#newOrderedTable">newOrderedTable proc</a> for creating an <tt class="docutils literal"><span class="pre"><span class="Identifier">OrderedTableRef</span></span></tt></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">initOrderedTable</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">string</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">initOrderedTable</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">,</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1397" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1397" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="initTable-procs-all">
|
|
<div id="initTable">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#initTable"><span class="Identifier">initTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">initialSize</span> <span class="Other">=</span> <span class="Identifier">defaultInitialSize</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Creates a new hash table that is empty.</p>
|
|
<p>Starting from Nim v0.20, tables are initialized by default and it is not necessary to call this function explicitly.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#toTable,openArray[]">toTable proc</a></li>
|
|
<li><a class="reference external" href="#newTable">newTable proc</a> for creating a <tt class="docutils literal"><span class="pre"><span class="Identifier">TableRef</span></span></tt></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">initTable</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">string</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">initTable</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">,</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L268" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L268" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="largest-procs-all">
|
|
<div id="largest,CountTable[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#largest%2CCountTable%5BA%5D"><span class="Identifier">largest</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns the <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair with the largest <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt>. Efficiency: O(n)</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#smallest,CountTable[A]">smallest proc</a></li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2476" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2476" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="largest,CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#largest%2CCountTableRef%5BA%5D"><span class="Identifier">largest</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns the <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair with the largest <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt>. Efficiency: O(n)</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#smallest,CountTable[A]">smallest proc</a></li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2802" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2802" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="len-procs-all">
|
|
<div id="len,OrderedTable[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#len%2COrderedTable%5BA%2CB%5D"><span class="Identifier">len</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span class="Identifier">inline</span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Returns the number of keys in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1604" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1604" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="len,OrderedTableRef[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#len%2COrderedTableRef%5BA%2CB%5D"><span class="Identifier">len</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a> {.<span class="Identifier">inline</span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Returns the number of keys in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2105" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2105" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="len,Table[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#len%2CTable%5BA%2CB%5D"><span class="Identifier">len</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Returns the number of keys in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L489" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L489" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="len,TableRef[A,B]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#len%2CTableRef%5BA%2CB%5D"><span class="Identifier">len</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Returns the number of keys in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">len</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="DecNumber">2</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1102" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1102" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="len,CountTable[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#len%2CCountTable%5BA%5D"><span class="Identifier">len</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Returns the number of keys in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2460" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2460" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="len,CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#len%2CCountTableRef%5BA%5D"><span class="Identifier">len</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Returns the number of keys in <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2835" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2835" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="merge-procs-all">
|
|
<div id="merge,CountTableRef[A],CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#merge%2CCountTableRef%5BA%5D%2CCountTableRef%5BA%5D"><span class="Identifier">merge</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">,</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
Merges the second table into the first one.
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">newCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aaabbc"</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">newCountTable</span><span class="Punctuation">(</span><span class="StringLit">"bcc"</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">merge</span><span class="Punctuation">(</span><span class="Identifier">b</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">newCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aaabbbccc"</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2877" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2877" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="merge,CountTable[A],CountTable[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#merge%2CCountTable%5BA%5D%2CCountTable%5BA%5D"><span class="Identifier">merge</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">s</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
Merges the second table into the first one (must be declared as <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span></span></tt>).
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aaabbc"</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"bcc"</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">merge</span><span class="Punctuation">(</span><span class="Identifier">b</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aaabbbccc"</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2588" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2588" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="mgetOrPut-procs-all">
|
|
<div id="mgetOrPut,OrderedTableRef[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#mgetOrPut%2COrderedTableRef%5BA%2CB%5D%2CA"><span class="Identifier">mgetOrPut</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> or puts the default initialization value for type <tt class="docutils literal"><span class="pre"><span class="Identifier">B</span></span></tt> (e.g. 0 for any integer type).
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == 5</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">').inc</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">z</span><span class="CharLit">': 1}.toOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2093" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2093" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mgetOrPut,OrderedTableRef[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#mgetOrPut%2COrderedTableRef%5BA%2CB%5D%2CA%2CB"><span class="Identifier">mgetOrPut</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> or puts <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> if not present, either way returning a value which can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],OrderedTableRef[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,OrderedTableRef[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,OrderedTableRef[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTableRef[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTableRef[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 99) == 5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 99) == 99</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">z</span><span class="CharLit">': 99}.newOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2073" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2073" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mgetOrPut,TableRef[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#mgetOrPut%2CTableRef%5BA%2CB%5D%2CA"><span class="Identifier">mgetOrPut</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> or puts the default initialization value for type <tt class="docutils literal"><span class="pre"><span class="Identifier">B</span></span></tt> (e.g. 0 for any integer type).
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == 5</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">').inc</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">z</span><span class="CharLit">': 1}.newTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1090" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1090" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mgetOrPut,TableRef[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#mgetOrPut%2CTableRef%5BA%2CB%5D%2CA%2CB"><span class="Identifier">mgetOrPut</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> or puts <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> if not present, either way returning a value which can be modified.</p>
|
|
<p>Note that while the value returned is of type <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span> <span class="Identifier">B</span></span></tt>, it is easy to accidentally create an copy of the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt>. Remember that seqs and strings are value types, and therefore cannot be copied into a separate variable for modification. See the example below.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],TableRef[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,TableRef[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,TableRef[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#getOrDefault,TableRef[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,TableRef[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 99) == 5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 99) == 99</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">z</span><span class="CharLit">': 99}.newTable</span>
|
|
|
|
<span class="Comment"># An example of accidentally creating a copy</span>
|
|
<span class="Keyword">var</span> <span class="Identifier">t</span> <span class="Operator">=</span> <span class="Identifier">newTable</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Comment"># In this example, we expect t[10] to be modified,</span>
|
|
<span class="Comment"># but it is not.</span>
|
|
<span class="Keyword">var</span> <span class="Identifier">copiedSeq</span> <span class="Operator">=</span> <span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="DecNumber">10</span><span class="Punctuation">,</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">10</span><span class="Punctuation">]</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">copiedSeq</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">20</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">10</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">10</span><span class="Punctuation">]</span>
|
|
<span class="Comment"># Correct</span>
|
|
<span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="DecNumber">25</span><span class="Punctuation">,</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">25</span><span class="Punctuation">]</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">35</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">25</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">25</span><span class="Punctuation">,</span> <span class="DecNumber">35</span><span class="Punctuation">]</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1054" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1054" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mgetOrPut,OrderedTable[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#mgetOrPut%2COrderedTable%5BA%2CB%5D%2CA"><span class="Identifier">mgetOrPut</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> or puts the default initialization value for type <tt class="docutils literal"><span class="pre"><span class="Identifier">B</span></span></tt> (e.g. 0 for any integer type).
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == 5</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">').inc</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">z</span><span class="CharLit">': 1}.toOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1592" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1592" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mgetOrPut,OrderedTable[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#mgetOrPut%2COrderedTable%5BA%2CB%5D%2CA%2CB"><span class="Identifier">mgetOrPut</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> or puts <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> if not present, either way returning a value which can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],OrderedTable[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,OrderedTable[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,OrderedTable[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTable[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,OrderedTable[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 99) == 5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 99) == 99</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">z</span><span class="CharLit">': 99}.toOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1572" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1572" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mgetOrPut,Table[A,B],A">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#mgetOrPut%2CTable%5BA%2CB%5D%2CA"><span class="Identifier">mgetOrPut</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> or puts the default initialization value for type <tt class="docutils literal"><span class="pre"><span class="Identifier">B</span></span></tt> (e.g. 0 for any integer type).
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">') == 5</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">').inc</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">z</span><span class="CharLit">': 1}.newTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L477" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L477" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mgetOrPut,Table[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#mgetOrPut%2CTable%5BA%2CB%5D%2CA%2CB"><span class="Identifier">mgetOrPut</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> or puts <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> if not present, either way returning a value which can be modified.</p>
|
|
<p>Note that while the value returned is of type <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span> <span class="Identifier">B</span></span></tt>, it is easy to accidentally create a copy of the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt>. Remember that seqs and strings are value types, and therefore cannot be copied into a separate variable for modification. See the example below.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#[],Table[A,B],A">[] proc</a> for retrieving a value of a key</li>
|
|
<li><a class="reference external" href="#hasKey,Table[A,B],A">hasKey proc</a></li>
|
|
<li><a class="reference external" href="#hasKeyOrPut,Table[A,B],A,B">hasKeyOrPut proc</a></li>
|
|
<li><a class="reference external" href="#getOrDefault,Table[A,B],A">getOrDefault proc</a> to return a default value (e.g. zero for int) if the key doesn't exist</li>
|
|
<li><a class="reference external" href="#getOrDefault,Table[A,B],A,B">getOrDefault proc</a> to return a custom value if the key doesn't exist</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 99) == 5</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 99) == 99</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">z</span><span class="CharLit">': 99}.toTable</span>
|
|
|
|
<span class="Comment"># An example of accidentally creating a copy</span>
|
|
<span class="Keyword">var</span> <span class="Identifier">t</span> <span class="Operator">=</span> <span class="Identifier">initTable</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Comment"># In this example, we expect t[10] to be modified,</span>
|
|
<span class="Comment"># but it is not.</span>
|
|
<span class="Keyword">var</span> <span class="Identifier">copiedSeq</span> <span class="Operator">=</span> <span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="DecNumber">10</span><span class="Punctuation">,</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">10</span><span class="Punctuation">]</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">copiedSeq</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">20</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">10</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">10</span><span class="Punctuation">]</span>
|
|
<span class="Comment"># Correct</span>
|
|
<span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">mgetOrPut</span><span class="Punctuation">(</span><span class="DecNumber">25</span><span class="Punctuation">,</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">25</span><span class="Punctuation">]</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">35</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">25</span><span class="Punctuation">]</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">25</span><span class="Punctuation">,</span> <span class="DecNumber">35</span><span class="Punctuation">]</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L439" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L439" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="newCountTable-procs-all">
|
|
<div id="newCountTable">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newCountTable"><span class="Identifier">newCountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">initialSize</span> <span class="Other">=</span> <span class="Identifier">defaultInitialSize</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Creates a new ref count table that is empty.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#newCountTable,openArray[A]">newCountTable proc</a> for creating a <tt class="docutils literal"><span class="pre"><span class="Identifier">CountTableRef</span></span></tt> from a collection</li>
|
|
<li><a class="reference external" href="#initCountTable">initCountTable proc</a> for creating a <tt class="docutils literal"><span class="pre"><span class="Identifier">CountTable</span></span></tt></li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2741" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2741" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="newCountTable,openArray[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newCountTable%2CopenArray%5BA%5D"><span class="Identifier">newCountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">keys</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
Creates a new ref count table with every member of a container <tt class="docutils literal"><span class="pre"><span class="Identifier">keys</span></span></tt> having a count of how many times it occurs in that container.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2753" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2753" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="newOrderedTable-procs-all">
|
|
<div id="newOrderedTable">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newOrderedTable"><span class="Identifier">newOrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">initialSize</span> <span class="Other">=</span> <span class="Identifier">defaultInitialSize</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span>
|
|
<span class="Identifier">B</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Creates a new ordered ref hash table that is empty.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#newOrderedTable,openArray[]">newOrderedTable proc</a> for creating an <tt class="docutils literal"><span class="pre"><span class="Identifier">OrderedTableRef</span></span></tt> from a collection of <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pairs</li>
|
|
<li><a class="reference external" href="#initOrderedTable">initOrderedTable proc</a> for creating an <tt class="docutils literal"><span class="pre"><span class="Identifier">OrderedTable</span></span></tt></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">newOrderedTable</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">string</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">newOrderedTable</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">,</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1914" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1914" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="newOrderedTable,openArray[]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newOrderedTable%2CopenArray%5B%5D"><span class="Identifier">newOrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">pairs</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Creates a new ordered ref hash table that contains the given <tt class="docutils literal"><span class="pre"><span class="Identifier">pairs</span></span></tt>.</p>
|
|
<p><tt class="docutils literal"><span class="pre"><span class="Identifier">pairs</span></span></tt> is a container consisting of <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> tuples.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#newOrderedTable">newOrderedTable proc</a></li>
|
|
<li><a class="reference external" href="#toOrderedTable,openArray[]">toOrderedTable proc</a> for an <tt class="docutils literal"><span class="pre"><span class="Identifier">OrderedTable</span></span></tt> version</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 5), ('</span><span class="Identifier">b</span><span class="CharLit">', 9)]</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">newOrderedTable</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">b</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1930" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1930" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="newTable-procs-all">
|
|
<div id="newTable">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newTable"><span class="Identifier">newTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">initialSize</span> <span class="Other">=</span> <span class="Identifier">defaultInitialSize</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Creates a new ref hash table that is empty.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#newTable,openArray[]">newTable proc</a> for creating a <tt class="docutils literal"><span class="pre"><span class="Identifier">TableRef</span></span></tt> from a collection of <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pairs</li>
|
|
<li><a class="reference external" href="#initTable">initTable proc</a> for creating a <tt class="docutils literal"><span class="pre"><span class="Identifier">Table</span></span></tt></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">newTable</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">string</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">newTable</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">,</span> <span class="Identifier">seq</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L888" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L888" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="newTable,openArray[]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newTable%2CopenArray%5B%5D"><span class="Identifier">newTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">pairs</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Creates a new ref hash table that contains the given <tt class="docutils literal"><span class="pre"><span class="Identifier">pairs</span></span></tt>.</p>
|
|
<p><tt class="docutils literal"><span class="pre"><span class="Identifier">pairs</span></span></tt> is a container consisting of <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> tuples.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#newTable">newTable proc</a></li>
|
|
<li><a class="reference external" href="#toTable,openArray[]">toTable proc</a> for a <tt class="docutils literal"><span class="pre"><span class="Identifier">Table</span></span></tt> version</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 5), ('</span><span class="Identifier">b</span><span class="CharLit">', 9)]</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">newTable</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">b</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.newTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L904" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L904" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="newTableFrom-procs-all">
|
|
<div id="newTableFrom,A,proc(B)">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#newTableFrom%2CA%2Cproc%28B%29"><span class="Identifier">newTableFrom</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">,</span> <span class="Identifier">C</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">collection</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">index</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">C</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">C</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
Index the collection with the proc provided.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L921" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L921" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="pop-procs-all">
|
|
<div id="pop,OrderedTableRef[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#pop%2COrderedTableRef%5BA%2CB%5D%2CA%2CB"><span class="Identifier">pop</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Deletes the <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> from the table. Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt>, if the <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> existed, and sets <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> to the mapping of the key. Otherwise, returns <tt class="docutils literal"><span class="pre"><span class="Identifier">false</span></span></tt>, and the <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> is unchanged.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#del,OrderedTableRef[A,B],A">del proc</a></li>
|
|
<li><a class="reference external" href="#clear,OrderedTableRef[A,B]">clear proc</a> to empty the whole table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">a</span><span class="CharLit">': 13}.newOrderedTable</span>
|
|
<span class="Identifier">i</span><span class="Punctuation">:</span> <span class="Identifier">int</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pop</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">', i) == true</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">': 5, '</span><span class="Identifier">a</span><span class="CharLit">': 13}.newOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">9</span>
|
|
<span class="Identifier">i</span> <span class="Operator">=</span> <span class="DecNumber">0</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pop</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', i) == false</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">': 5, '</span><span class="Identifier">a</span><span class="CharLit">': 13}.newOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">0</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2137" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2137" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="pop,TableRef[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#pop%2CTableRef%5BA%2CB%5D%2CA%2CB"><span class="Identifier">pop</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Deletes the <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> from the table. Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt>, if the <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> existed, and sets <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> to the mapping of the key. Otherwise, returns <tt class="docutils literal"><span class="pre"><span class="Identifier">false</span></span></tt>, and the <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> is unchanged.<div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
|
|
If duplicate keys were added (via the now deprecated <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt> proc), this may need to be called multiple times.</div>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#del,TableRef[A,B],A">del proc</a></li>
|
|
<li><a class="reference external" href="#clear,TableRef[A,B]">clear proc</a> to empty the whole table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newTable</span>
|
|
<span class="Identifier">i</span><span class="Punctuation">:</span> <span class="Identifier">int</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pop</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">', i) == true</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">9</span>
|
|
<span class="Identifier">i</span> <span class="Operator">=</span> <span class="DecNumber">0</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pop</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', i) == false</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.newTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">0</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1138" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1138" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="pop,OrderedTable[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#pop%2COrderedTable%5BA%2CB%5D%2CA%2CB"><span class="Identifier">pop</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Deletes the <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> from the table. Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt>, if the <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> existed, and sets <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> to the mapping of the key. Otherwise, returns <tt class="docutils literal"><span class="pre"><span class="Identifier">false</span></span></tt>, and the <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> is unchanged.</p>
|
|
<p>O(n) complexity.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#del,OrderedTable[A,B],A">del proc</a></li>
|
|
<li><a class="reference external" href="#clear,OrderedTable[A,B]">clear proc</a> to empty the whole table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">a</span><span class="CharLit">': 13}.toOrderedTable</span>
|
|
<span class="Identifier">i</span><span class="Punctuation">:</span> <span class="Identifier">int</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pop</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">', i) == true</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">': 5, '</span><span class="Identifier">a</span><span class="CharLit">': 13}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">9</span>
|
|
<span class="Identifier">i</span> <span class="Operator">=</span> <span class="DecNumber">0</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pop</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', i) == false</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">': 5, '</span><span class="Identifier">a</span><span class="CharLit">': 13}.toOrderedTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">0</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1655" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1655" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="pop,Table[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#pop%2CTable%5BA%2CB%5D%2CA%2CB"><span class="Identifier">pop</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
Deletes the <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> from the table. Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt>, if the <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> existed, and sets <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> to the mapping of the key. Otherwise, returns <tt class="docutils literal"><span class="pre"><span class="Identifier">false</span></span></tt>, and the <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> is unchanged.<div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
|
|
If duplicate keys were added (via the now deprecated <tt class="docutils literal"><span class="pre"><span class="Identifier">add</span></span></tt> proc), this may need to be called multiple times.</div>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#del,Table[A,B],A">del proc</a></li>
|
|
<li><a class="reference external" href="#clear,Table[A,B]">clear proc</a> to empty the whole table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span>
|
|
<span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toTable</span>
|
|
<span class="Identifier">i</span><span class="Punctuation">:</span> <span class="Identifier">int</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pop</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">', i) == true</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">9</span>
|
|
<span class="Identifier">i</span> <span class="Operator">=</span> <span class="DecNumber">0</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pop</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', i) == false</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">c</span><span class="CharLit">': 13}.toTable</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">0</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L529" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L529" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="pop,CountTableRef[A],A,int">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#pop%2CCountTableRef%5BA%5D%2CA%2Cint"><span class="Identifier">pop</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Deletes the <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> from the table. Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt>, if the <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> existed, and sets <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> to the mapping of the key. Otherwise, returns <tt class="docutils literal"><span class="pre"><span class="Identifier">false</span></span></tt>, and the <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> is unchanged.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#del,CountTableRef[A],A">del proc</a></li>
|
|
<li><a class="reference external" href="#clear,CountTableRef[A]">clear proc</a> to empty the whole table</li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2847" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2847" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="pop,CountTable[A],A,int">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#pop%2CCountTable%5BA%5D%2CA%2Cint"><span class="Identifier">pop</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Deletes the <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> from the table. Returns <tt class="docutils literal"><span class="pre"><span class="Identifier">true</span></span></tt>, if the <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt> existed, and sets <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> to the mapping of the key. Otherwise, returns <tt class="docutils literal"><span class="pre"><span class="Identifier">false</span></span></tt>, and the <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt> is unchanged.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#del,CountTable[A],A">del proc</a></li>
|
|
<li><a class="reference external" href="#clear,CountTable[A]">clear proc</a> to empty the whole table</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aabbbccccc"</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">var</span> <span class="Identifier">i</span> <span class="Operator">=</span> <span class="DecNumber">0</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pop</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">', i)</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">3</span>
|
|
<span class="Identifier">i</span> <span class="Operator">=</span> <span class="DecNumber">99</span>
|
|
<span class="Identifier">assert</span> <span class="Keyword">not</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pop</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">b</span><span class="CharLit">', i)</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">i</span> <span class="Operator">==</span> <span class="DecNumber">99</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2531" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2531" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="smallest-procs-all">
|
|
<div id="smallest,CountTable[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#smallest%2CCountTable%5BA%5D"><span class="Identifier">smallest</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns the <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair with the smallest <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt>. Efficiency: O(n)</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#largest,CountTable[A]">largest proc</a></li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2464" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2464" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="smallest,CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#smallest%2CCountTableRef%5BA%5D"><span class="Identifier">smallest</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">tuple</span><span class="Other">[</span><span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">val</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Returns the <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair with the smallest <tt class="docutils literal"><span class="pre"><span class="Identifier">val</span></span></tt>. Efficiency: O(n)</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#largest,CountTableRef[A]">largest proc</a></li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2795" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2795" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="sort-procs-all">
|
|
<div id="sort,OrderedTableRef[A,B],proc(,)">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#sort%2COrderedTableRef%5BA%2CB%5D%2Cproc%28%2C%29"><span class="Identifier">sort</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">cmp</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span>
|
|
<span class="Identifier">order</span> <span class="Other">=</span> <a href="algorithm.html#SortOrder"><span class="Identifier">SortOrder</span></a><span class="Other">.</span><span class="Identifier">Ascending</span><span class="Other">)</span> {.<span class="Identifier">effectsOf</span><span class="Other">:</span> <span class="Identifier">cmp</span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Sorts <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> according to the function <tt class="docutils literal"><span class="pre"><span class="Identifier">cmp</span></span></tt>.</p>
|
|
<p>This modifies the internal list that kept the insertion order, so insertion order is lost after this call but key lookup and insertions remain possible after <tt class="docutils literal"><span class="pre"><span class="Identifier">sort</span></span></tt> (in contrast to the <a class="reference external" href="#sort,CountTableRef[A]">sort proc</a> for count tables).</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Punctuation">[</span><span class="Identifier">algorithm</span><span class="Punctuation">]</span>
|
|
<span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">newOrderedTable</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">,</span> <span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">i</span><span class="Punctuation">,</span> <span class="Identifier">c</span> <span class="Keyword">in</span> <span class="StringLit">"cab"</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">c</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="DecNumber">10</span><span class="Operator">*</span><span class="Identifier">i</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">': 0, '</span><span class="Identifier">a</span><span class="CharLit">': 10, '</span><span class="Identifier">b</span><span class="CharLit">': 20}.newOrderedTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">sort</span><span class="Punctuation">(</span><span class="Identifier">system</span><span class="Operator">.</span><span class="Identifier">cmp</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 10, '</span><span class="Identifier">b</span><span class="CharLit">': 20, '</span><span class="Identifier">c</span><span class="CharLit">': 0}.newOrderedTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">sort</span><span class="Punctuation">(</span><span class="Identifier">system</span><span class="Operator">.</span><span class="Identifier">cmp</span><span class="Punctuation">,</span> <span class="Identifier">order</span> <span class="Operator">=</span> <span class="Identifier">SortOrder</span><span class="Operator">.</span><span class="Identifier">Descending</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">': 0, '</span><span class="Identifier">b</span><span class="CharLit">': 20, '</span><span class="Identifier">a</span><span class="CharLit">': 10}.newOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2173" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2173" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="sort,OrderedTable[A,B],proc(,)">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#sort%2COrderedTable%5BA%2CB%5D%2Cproc%28%2C%29"><span class="Identifier">sort</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">cmp</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">;</span>
|
|
<span class="Identifier">order</span> <span class="Other">=</span> <a href="algorithm.html#SortOrder"><span class="Identifier">SortOrder</span></a><span class="Other">.</span><span class="Identifier">Ascending</span><span class="Other">)</span> {.<span class="Identifier">effectsOf</span><span class="Other">:</span> <span class="Identifier">cmp</span>.}</pre></dt>
|
|
<dd>
|
|
|
|
<p>Sorts <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> according to the function <tt class="docutils literal"><span class="pre"><span class="Identifier">cmp</span></span></tt>.</p>
|
|
<p>This modifies the internal list that kept the insertion order, so insertion order is lost after this call but key lookup and insertions remain possible after <tt class="docutils literal"><span class="pre"><span class="Identifier">sort</span></span></tt> (in contrast to the <a class="reference external" href="#sort,CountTable[A]">sort proc</a> for count tables).</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Punctuation">[</span><span class="Identifier">algorithm</span><span class="Punctuation">]</span>
|
|
<span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">initOrderedTable</span><span class="Punctuation">[</span><span class="Identifier">char</span><span class="Punctuation">,</span> <span class="Identifier">int</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">i</span><span class="Punctuation">,</span> <span class="Identifier">c</span> <span class="Keyword">in</span> <span class="StringLit">"cab"</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">c</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="DecNumber">10</span><span class="Operator">*</span><span class="Identifier">i</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">': 0, '</span><span class="Identifier">a</span><span class="CharLit">': 10, '</span><span class="Identifier">b</span><span class="CharLit">': 20}.toOrderedTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">sort</span><span class="Punctuation">(</span><span class="Identifier">system</span><span class="Operator">.</span><span class="Identifier">cmp</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 10, '</span><span class="Identifier">b</span><span class="CharLit">': 20, '</span><span class="Identifier">c</span><span class="CharLit">': 0}.toOrderedTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">sort</span><span class="Punctuation">(</span><span class="Identifier">system</span><span class="Operator">.</span><span class="Identifier">cmp</span><span class="Punctuation">,</span> <span class="Identifier">order</span> <span class="Operator">=</span> <span class="Identifier">SortOrder</span><span class="Operator">.</span><span class="Identifier">Descending</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">c</span><span class="CharLit">': 0, '</span><span class="Identifier">b</span><span class="CharLit">': 20, '</span><span class="Identifier">a</span><span class="CharLit">': 10}.toOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1701" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1701" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="sort,CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#sort%2CCountTableRef%5BA%5D"><span class="Identifier">sort</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">order</span> <span class="Other">=</span> <a href="algorithm.html#SortOrder"><span class="Identifier">SortOrder</span></a><span class="Other">.</span><span class="Identifier">Descending</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Sorts the count table so that, by default, the entry with the highest counter comes first.</p>
|
|
<p><strong>This is destructive! You must not modify `t` afterwards!</strong></p>
|
|
<p>You can use the iterators <a class="reference external" href="#pairs.i,CountTableRef[A]">pairs</a>, <a class="reference external" href="#keys.i,CountTableRef[A]">keys</a>, and <a class="reference external" href="#values.i,CountTableRef[A]">values</a> to iterate over <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> in the sorted order.</p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2866" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2866" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="sort,CountTable[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#sort%2CCountTable%5BA%5D"><span class="Identifier">sort</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">order</span> <span class="Other">=</span> <a href="algorithm.html#SortOrder"><span class="Identifier">SortOrder</span></a><span class="Other">.</span><span class="Identifier">Descending</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
Sorts the count table so that, by default, the entry with the highest counter comes first.<div class="admonition admonition-warning"><span class="admonition-warning-text"><b>Warning:</b></span>
|
|
This is destructive! Once sorted, you must not modify <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> afterwards!</div>
|
|
<p>You can use the iterators <a class="reference external" href="#pairs.i,CountTable[A]">pairs</a>, <a class="reference external" href="#keys.i,CountTable[A]">keys</a>, and <a class="reference external" href="#values.i,CountTable[A]">values</a> to iterate over <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> in the sorted order.</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Punctuation">[</span><span class="Identifier">algorithm</span><span class="Punctuation">,</span> <span class="Identifier">sequtils</span><span class="Punctuation">]</span>
|
|
<span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"abracadabra"</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="StringLit">"aaaaabbrrcd"</span><span class="Operator">.</span><span class="Identifier">toCountTable</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">sort</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">values</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">]</span>
|
|
<span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">sort</span><span class="Punctuation">(</span><span class="Identifier">SortOrder</span><span class="Operator">.</span><span class="Identifier">Ascending</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">values</span><span class="Punctuation">)</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">]</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2567" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2567" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="take-procs-all">
|
|
<div id="take,TableRef[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#take%2CTableRef%5BA%2CB%5D%2CA%2CB"><span class="Identifier">take</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">inline</span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Alias for:<ul class="simple"><li><a class="reference external" href="#pop,TableRef[A,B],A,B">pop proc</a></li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1164" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1164" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="take,Table[A,B],A,B">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#take%2CTable%5BA%2CB%5D%2CA%2CB"><span class="Identifier">take</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">val</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#bool"><span class="Identifier">bool</span></a> {.<span class="Identifier">inline</span>.}</pre></dt>
|
|
<dd>
|
|
|
|
Alias for:<ul class="simple"><li><a class="reference external" href="#pop,Table[A,B],A,B">pop proc</a></li>
|
|
</ul>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L560" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L560" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="toCountTable-procs-all">
|
|
<div id="toCountTable,openArray[A]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#toCountTable%2CopenArray%5BA%5D"><span class="Identifier">toCountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">keys</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
Creates a new count table with every member of a container <tt class="docutils literal"><span class="pre"><span class="Identifier">keys</span></span></tt> having a count of how many times it occurs in that container.
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2400" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2400" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="toOrderedTable-procs-all">
|
|
<div id="toOrderedTable,openArray[]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#toOrderedTable%2CopenArray%5B%5D"><span class="Identifier">toOrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">pairs</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Creates a new ordered hash table that contains the given <tt class="docutils literal"><span class="pre"><span class="Identifier">pairs</span></span></tt>.</p>
|
|
<p><tt class="docutils literal"><span class="pre"><span class="Identifier">pairs</span></span></tt> is a container consisting of <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> tuples.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#initOrderedTable">initOrderedTable proc</a></li>
|
|
<li><a class="reference external" href="#newOrderedTable,openArray[]">newOrderedTable proc</a> for an <tt class="docutils literal"><span class="pre"><span class="Identifier">OrderedTableRef</span></span></tt> version</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 5), ('</span><span class="Identifier">b</span><span class="CharLit">', 9)]</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">toOrderedTable</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">b</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1430" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1430" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="toTable-procs-all">
|
|
<div id="toTable,openArray[]">
|
|
<dt><pre><span class="Keyword">proc</span> <a href="#toTable%2CopenArray%5B%5D"><span class="Identifier">toTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">pairs</span><span class="Other">:</span> <a href="system.html#openArray"><span class="Identifier">openArray</span></a><span class="Other">[</span><span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">)</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Creates a new hash table that contains the given <tt class="docutils literal"><span class="pre"><span class="Identifier">pairs</span></span></tt>.</p>
|
|
<p><tt class="docutils literal"><span class="pre"><span class="Identifier">pairs</span></span></tt> is a container consisting of <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> tuples.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#initTable">initTable proc</a></li>
|
|
<li><a class="reference external" href="#newTable,openArray[]">newTable proc</a> for a <tt class="docutils literal"><span class="pre"><span class="Identifier">TableRef</span></span></tt> version</li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">[</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 5), ('</span><span class="Identifier">b</span><span class="CharLit">', 9)]</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">b</span> <span class="Operator">=</span> <span class="Identifier">toTable</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">b</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 5, '</span><span class="Identifier">b</span><span class="CharLit">': 9}.toTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L300" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L300" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="15">
|
|
<h1><a class="toc-backref" href="#15">Iterators</a></h1>
|
|
<dl class="item">
|
|
<div id="allValues-iterators-all">
|
|
<div id="allValues.i,Table[A,B],A">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#allValues.i%2CTable%5BA%2CB%5D%2CA"><span class="Identifier">allValues</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">B</span> {.<span><span class="Other pragmadots">...</span></span><span class="pragmawrap"><span class="Identifier">deprecated</span><span class="Other">:</span> <span class="StringLit">"Deprecated since v1.4; tables with duplicated keys are deprecated"</span></span>.}</pre></dt>
|
|
<dd>
|
|
<div class="deprecation-message">
|
|
<b>Deprecated:</b> Deprecated since v1.4; tables with duplicated keys are deprecated
|
|
</div>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> that belongs to the given <tt class="docutils literal"><span class="pre"><span class="Identifier">key</span></span></tt>.</p>
|
|
<p>Used if you have a table with duplicate keys (as a result of using <a class="reference external" href="#add,Table[A,B],A,sinkB">add proc</a>). </p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">import</span> <span class="Identifier">std</span><span class="Operator">/</span><span class="Punctuation">[</span><span class="Identifier">sequtils</span><span class="Punctuation">,</span> <span class="Identifier">algorithm</span><span class="Punctuation">]</span>
|
|
|
|
<span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">': 3, '</span><span class="Identifier">b</span><span class="CharLit">': 5}.toTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">i</span> <span class="Keyword">in</span> <span class="FloatNumber">1.</span><span class="Operator">.</span><span class="DecNumber">3</span><span class="Punctuation">:</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">', 10*i)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pairs</span><span class="Punctuation">)</span><span class="Operator">.</span><span class="Identifier">sorted</span> <span class="Operator">==</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">a</span><span class="CharLit">', 3), ('</span><span class="Identifier">b</span><span class="CharLit">', 5), ('</span><span class="Identifier">z</span><span class="CharLit">', 10), ('</span><span class="Identifier">z</span><span class="CharLit">', 20), ('</span><span class="Identifier">z</span><span class="CharLit">', 30)]</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">sorted</span><span class="Punctuation">(</span><span class="Identifier">toSeq</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">allValues</span><span class="Punctuation">(</span><span class="Punctuation">'</span><span class="Identifier">z</span><span class="CharLit">'))) == @[10, 20, 30]</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L859" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L859" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="keys-iterators-all">
|
|
<div id="keys.i,OrderedTable[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#keys.i%2COrderedTable%5BA%2CB%5D"><span class="Identifier">keys</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#lent"><span class="Identifier">lent</span></a> <span class="Identifier">A</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any key in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> in insertion order.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,OrderedTable[A,B]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,OrderedTable[A,B]">values iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toOrderedTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">keys</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">k</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">99</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">o</span><span class="CharLit">': @[1, 5, 7, 9, 99],</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">,</span> <span class="DecNumber">99</span><span class="Punctuation">]</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1846" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1846" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="keys.i,OrderedTableRef[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#keys.i%2COrderedTableRef%5BA%2CB%5D"><span class="Identifier">keys</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#lent"><span class="Identifier">lent</span></a> <span class="Identifier">A</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any key in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> in insertion order.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,OrderedTableRef[A,B]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,OrderedTableRef[A,B]">values iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newOrderedTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">keys</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">k</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">99</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">o</span><span class="CharLit">': @[1, 5, 7, 9, 99], '</span><span class="Identifier">e</span><span class="CharLit">': @[2, 4, 6, 8,</span>
|
|
<span class="DecNumber">99</span><span class="Punctuation">]</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2269" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2269" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="keys.i,Table[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#keys.i%2CTable%5BA%2CB%5D"><span class="Identifier">keys</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#lent"><span class="Identifier">lent</span></a> <span class="Identifier">A</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any key in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,Table[A,B]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,Table[A,B]">values iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">keys</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">k</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">99</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">e</span><span class="CharLit">': @[2, 4, 6, 8, 99], '</span><span class="Identifier">o</span><span class="CharLit">': @[1, 5, 7, 9, 99]}.toTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L795" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L795" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="keys.i,TableRef[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#keys.i%2CTableRef%5BA%2CB%5D"><span class="Identifier">keys</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#lent"><span class="Identifier">lent</span></a> <span class="Identifier">A</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any key in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,TableRef[A,B]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,TableRef[A,B]">values iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">keys</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">k</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">99</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">e</span><span class="CharLit">': @[2, 4, 6, 8, 99], '</span><span class="Identifier">o</span><span class="CharLit">': @[1, 5, 7, 9, 99]}.newTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1257" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1257" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="keys.i,CountTable[A]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#keys.i%2CCountTable%5BA%5D"><span class="Identifier">keys</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#lent"><span class="Identifier">lent</span></a> <span class="Identifier">A</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any key in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,CountTable[A]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,CountTable[A]">values iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"abracadabra"</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span> <span class="Keyword">in</span> <span class="Identifier">keys</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">k</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="DecNumber">2</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aabbccddrr"</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2678" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2678" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="keys.i,CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#keys.i%2CCountTableRef%5BA%5D"><span class="Identifier">keys</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">A</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any key in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,CountTable[A]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,CountTable[A]">values iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">newCountTable</span><span class="Punctuation">(</span><span class="StringLit">"abracadabra"</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span> <span class="Keyword">in</span> <span class="Identifier">keys</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">a</span><span class="Punctuation">[</span><span class="Identifier">k</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="DecNumber">2</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">newCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aabbccddrr"</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2955" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2955" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="mpairs-iterators-all">
|
|
<div id="mpairs.i,OrderedTableRef[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mpairs.i%2COrderedTableRef%5BA%2CB%5D"><span class="Identifier">mpairs</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Keyword">var</span> <span class="Identifier">B</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> in insertion order. The values can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,OrderedTableRef[A,B]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#mvalues.i,OrderedTableRef[A,B]">mvalues iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newOrderedTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mpairs</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">v</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">v</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span> <span class="Operator">+</span> <span class="DecNumber">10</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">o</span><span class="CharLit">': @[1, 5, 7, 9, 11],</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">,</span> <span class="DecNumber">12</span><span class="Punctuation">]</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2247" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2247" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mpairs.i,TableRef[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mpairs.i%2CTableRef%5BA%2CB%5D"><span class="Identifier">mpairs</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Keyword">var</span> <span class="Identifier">B</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. The values can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,TableRef[A,B]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#mvalues.i,TableRef[A,B]">mvalues iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mpairs</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">v</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">v</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span> <span class="Operator">+</span> <span class="DecNumber">10</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">e</span><span class="CharLit">': @[2, 4, 6, 8, 12], '</span><span class="Identifier">o</span><span class="CharLit">': @[1, 5, 7, 9, 11]}.newTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1235" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1235" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mpairs.i,OrderedTable[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mpairs.i%2COrderedTable%5BA%2CB%5D"><span class="Identifier">mpairs</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Keyword">var</span> <span class="Identifier">B</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> (must be declared as <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span></span></tt>) in insertion order. The values can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,OrderedTable[A,B]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#mvalues.i,OrderedTable[A,B]">mvalues iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toOrderedTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mpairs</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">v</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">v</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span> <span class="Operator">+</span> <span class="DecNumber">10</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">o</span><span class="CharLit">': @[1, 5, 7, 9, 11],</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">,</span> <span class="DecNumber">12</span><span class="Punctuation">]</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1824" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1824" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mpairs.i,Table[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mpairs.i%2CTable%5BA%2CB%5D"><span class="Identifier">mpairs</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Keyword">var</span> <span class="Identifier">B</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> (must be declared as <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span></span></tt>). The values can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,Table[A,B]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#mvalues.i,Table[A,B]">mvalues iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mpairs</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">v</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="Identifier">v</span><span class="Punctuation">[</span><span class="DecNumber">0</span><span class="Punctuation">]</span> <span class="Operator">+</span> <span class="DecNumber">10</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">e</span><span class="CharLit">': @[2, 4, 6, 8, 12], '</span><span class="Identifier">o</span><span class="CharLit">': @[1, 5, 7, 9, 11]}.toTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L773" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L773" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mpairs.i,CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mpairs.i%2CCountTableRef%5BA%5D"><span class="Identifier">mpairs</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Keyword">var</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. The values can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,CountTableRef[A]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#mvalues.i,CountTableRef[A]">mvalues iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">newCountTable</span><span class="Punctuation">(</span><span class="StringLit">"abracadabra"</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">mpairs</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">v</span> <span class="Operator">=</span> <span class="DecNumber">2</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">newCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aabbccddrr"</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2936" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2936" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mpairs.i,CountTable[A]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mpairs.i%2CCountTable%5BA%5D"><span class="Identifier">mpairs</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Keyword">var</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> (must be declared as <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span></span></tt>). The values can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,CountTable[A]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#mvalues.i,CountTable[A]">mvalues iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"abracadabra"</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">mpairs</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">v</span> <span class="Operator">=</span> <span class="DecNumber">2</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aabbccddrr"</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2659" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2659" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="mvalues-iterators-all">
|
|
<div id="mvalues.i,OrderedTableRef[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mvalues.i%2COrderedTableRef%5BA%2CB%5D"><span class="Identifier">mvalues</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> in insertion order. The values can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#mpairs.i,OrderedTableRef[A,B]">mpairs iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,OrderedTableRef[A,B]">values iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newOrderedTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mvalues</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">v</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">99</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">o</span><span class="CharLit">': @[1, 5, 7, 9, 99],</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">,</span> <span class="DecNumber">99</span><span class="Punctuation">]</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2310" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2310" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mvalues.i,TableRef[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mvalues.i%2CTableRef%5BA%2CB%5D"><span class="Identifier">mvalues</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. The values can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#mpairs.i,TableRef[A,B]">mpairs iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,TableRef[A,B]">values iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mvalues</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">v</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">99</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">e</span><span class="CharLit">': @[2, 4, 6, 8, 99], '</span><span class="Identifier">o</span><span class="CharLit">': @[1, 5, 7, 9, 99]}.newTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1299" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1299" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mvalues.i,OrderedTable[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mvalues.i%2COrderedTable%5BA%2CB%5D"><span class="Identifier">mvalues</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> (must be declared as <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span></span></tt>) in insertion order. The values can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#mpairs.i,OrderedTable[A,B]">mpairs iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,OrderedTable[A,B]">values iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toOrderedTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mvalues</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">v</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">99</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">o</span><span class="CharLit">': @[1, 5, 7, 9, 99],</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">,</span> <span class="DecNumber">99</span><span class="Punctuation">]</span><span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toOrderedTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1887" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1887" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mvalues.i,Table[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mvalues.i%2CTable%5BA%2CB%5D"><span class="Identifier">mvalues</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> (must be declared as <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span></span></tt>). The values can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#mpairs.i,Table[A,B]">mpairs iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,Table[A,B]">values iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">mvalues</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">v</span><span class="Operator">.</span><span class="Identifier">add</span><span class="Punctuation">(</span><span class="DecNumber">99</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Punctuation">{</span><span class="Punctuation">'</span><span class="Identifier">e</span><span class="CharLit">': @[2, 4, 6, 8, 99], '</span><span class="Identifier">o</span><span class="CharLit">': @[1, 5, 7, 9, 99]}.toTable</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L837" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L837" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mvalues.i,CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mvalues.i%2CCountTableRef%5BA%5D"><span class="Identifier">mvalues</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>. The values can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#mpairs.i,CountTableRef[A]">mpairs iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,CountTableRef[A]">values iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">newCountTable</span><span class="Punctuation">(</span><span class="StringLit">"abracadabra"</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">mvalues</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">v</span> <span class="Operator">=</span> <span class="DecNumber">2</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">newCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aabbccddrr"</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2991" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2991" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="mvalues.i,CountTable[A]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#mvalues.i%2CCountTable%5BA%5D"><span class="Identifier">mvalues</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> (must be declared as <tt class="docutils literal"><span class="pre"><span class="Keyword">var</span></span></tt>). The values can be modified.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#mpairs.i,CountTable[A]">mpairs iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,CountTable[A]">values iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">var</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"abracadabra"</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">mvalues</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">v</span> <span class="Operator">=</span> <span class="DecNumber">2</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">a</span> <span class="Operator">==</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"aabbccddrr"</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2714" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2714" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="pairs-iterators-all">
|
|
<div id="pairs.i,OrderedTable[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#pairs.i%2COrderedTable%5BA%2CB%5D"><span class="Identifier">pairs</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> in insertion order.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#mpairs.i,OrderedTable[A,B]">mpairs iterator</a></li>
|
|
<li><a class="reference external" href="#keys.i,OrderedTable[A,B]">keys iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,OrderedTable[A,B]">values iterator</a></li>
|
|
</ul>
|
|
<p><strong>Examples:</strong></p>
|
|
<p><pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toOrderedTable</span>
|
|
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pairs</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">echo</span> <span class="StringLit">"key: "</span><span class="Punctuation">,</span> <span class="Identifier">k</span>
|
|
<span class="Identifier">echo</span> <span class="StringLit">"value: "</span><span class="Punctuation">,</span> <span class="Identifier">v</span>
|
|
|
|
<span class="Comment"># key: o</span>
|
|
<span class="Comment"># value: [1, 5, 7, 9]</span>
|
|
<span class="Comment"># key: e</span>
|
|
<span class="Comment"># value: [2, 4, 6, 8]</span></pre></p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1792" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1792" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="pairs.i,OrderedTableRef[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#pairs.i%2COrderedTableRef%5BA%2CB%5D"><span class="Identifier">pairs</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> in insertion order.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#mpairs.i,OrderedTableRef[A,B]">mpairs iterator</a></li>
|
|
<li><a class="reference external" href="#keys.i,OrderedTableRef[A,B]">keys iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,OrderedTableRef[A,B]">values iterator</a></li>
|
|
</ul>
|
|
<p><strong>Examples:</strong></p>
|
|
<p><pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newOrderedTable</span>
|
|
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pairs</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">echo</span> <span class="StringLit">"key: "</span><span class="Punctuation">,</span> <span class="Identifier">k</span>
|
|
<span class="Identifier">echo</span> <span class="StringLit">"value: "</span><span class="Punctuation">,</span> <span class="Identifier">v</span>
|
|
|
|
<span class="Comment"># key: o</span>
|
|
<span class="Comment"># value: [1, 5, 7, 9]</span>
|
|
<span class="Comment"># key: e</span>
|
|
<span class="Comment"># value: [2, 4, 6, 8]</span></pre></p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2215" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2215" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="pairs.i,Table[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#pairs.i%2CTable%5BA%2CB%5D"><span class="Identifier">pairs</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#mpairs.i,Table[A,B]">mpairs iterator</a></li>
|
|
<li><a class="reference external" href="#keys.i,Table[A,B]">keys iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,Table[A,B]">values iterator</a></li>
|
|
</ul>
|
|
<p><strong>Examples:</strong></p>
|
|
<p><pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toTable</span>
|
|
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pairs</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">echo</span> <span class="StringLit">"key: "</span><span class="Punctuation">,</span> <span class="Identifier">k</span>
|
|
<span class="Identifier">echo</span> <span class="StringLit">"value: "</span><span class="Punctuation">,</span> <span class="Identifier">v</span>
|
|
|
|
<span class="Comment"># key: e</span>
|
|
<span class="Comment"># value: [2, 4, 6, 8]</span>
|
|
<span class="Comment"># key: o</span>
|
|
<span class="Comment"># value: [1, 5, 7, 9]</span></pre></p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L742" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L742" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="pairs.i,TableRef[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#pairs.i%2CTableRef%5BA%2CB%5D"><span class="Identifier">pairs</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#mpairs.i,TableRef[A,B]">mpairs iterator</a></li>
|
|
<li><a class="reference external" href="#keys.i,TableRef[A,B]">keys iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,TableRef[A,B]">values iterator</a></li>
|
|
</ul>
|
|
<p><strong>Examples:</strong></p>
|
|
<p><pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newTable</span>
|
|
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">pairs</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">echo</span> <span class="StringLit">"key: "</span><span class="Punctuation">,</span> <span class="Identifier">k</span>
|
|
<span class="Identifier">echo</span> <span class="StringLit">"value: "</span><span class="Punctuation">,</span> <span class="Identifier">v</span>
|
|
|
|
<span class="Comment"># key: e</span>
|
|
<span class="Comment"># value: [2, 4, 6, 8]</span>
|
|
<span class="Comment"># key: o</span>
|
|
<span class="Comment"># value: [1, 5, 7, 9]</span></pre></p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1204" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1204" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="pairs.i,CountTable[A]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#pairs.i%2CCountTable%5BA%5D"><span class="Identifier">pairs</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#mpairs.i,CountTable[A]">mpairs iterator</a></li>
|
|
<li><a class="reference external" href="#keys.i,CountTable[A]">keys iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,CountTable[A]">values iterator</a></li>
|
|
</ul>
|
|
<p><strong>Examples:</strong></p>
|
|
<p><pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"abracadabra"</span><span class="Punctuation">)</span>
|
|
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">pairs</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">echo</span> <span class="StringLit">"key: "</span><span class="Punctuation">,</span> <span class="Identifier">k</span>
|
|
<span class="Identifier">echo</span> <span class="StringLit">"value: "</span><span class="Punctuation">,</span> <span class="Identifier">v</span>
|
|
|
|
<span class="Comment"># key: a</span>
|
|
<span class="Comment"># value: 5</span>
|
|
<span class="Comment"># key: b</span>
|
|
<span class="Comment"># value: 2</span>
|
|
<span class="Comment"># key: c</span>
|
|
<span class="Comment"># value: 1</span>
|
|
<span class="Comment"># key: d</span>
|
|
<span class="Comment"># value: 1</span>
|
|
<span class="Comment"># key: r</span>
|
|
<span class="Comment"># value: 2</span></pre></p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2625" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2625" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="pairs.i,CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#pairs.i%2CCountTableRef%5BA%5D"><span class="Identifier">pairs</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <span class="Other">(</span><span class="Identifier">A</span><span class="Other">,</span> <a href="system.html#int"><span class="Identifier">int</span></a><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any <tt class="docutils literal"><span class="pre"><span class="Punctuation">(</span><span class="Identifier">key</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span></span></tt> pair in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#mpairs.i,CountTableRef[A]">mpairs iterator</a></li>
|
|
<li><a class="reference external" href="#keys.i,CountTableRef[A]">keys iterator</a></li>
|
|
<li><a class="reference external" href="#values.i,CountTableRef[A]">values iterator</a></li>
|
|
</ul>
|
|
<p><strong>Examples:</strong></p>
|
|
<p><pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">newCountTable</span><span class="Punctuation">(</span><span class="StringLit">"abracadabra"</span><span class="Punctuation">)</span>
|
|
|
|
<span class="Keyword">for</span> <span class="Identifier">k</span><span class="Punctuation">,</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">pairs</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">echo</span> <span class="StringLit">"key: "</span><span class="Punctuation">,</span> <span class="Identifier">k</span>
|
|
<span class="Identifier">echo</span> <span class="StringLit">"value: "</span><span class="Punctuation">,</span> <span class="Identifier">v</span>
|
|
|
|
<span class="Comment"># key: a</span>
|
|
<span class="Comment"># value: 5</span>
|
|
<span class="Comment"># key: b</span>
|
|
<span class="Comment"># value: 2</span>
|
|
<span class="Comment"># key: c</span>
|
|
<span class="Comment"># value: 1</span>
|
|
<span class="Comment"># key: d</span>
|
|
<span class="Comment"># value: 1</span>
|
|
<span class="Comment"># key: r</span>
|
|
<span class="Comment"># value: 2</span></pre></p>
|
|
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2902" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2902" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
<div id="values-iterators-all">
|
|
<div id="values.i,OrderedTable[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#values.i%2COrderedTable%5BA%2CB%5D"><span class="Identifier">values</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTable"><span class="Identifier">OrderedTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#lent"><span class="Identifier">lent</span></a> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> in insertion order.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,OrderedTable[A,B]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#keys.i,OrderedTable[A,B]">keys iterator</a></li>
|
|
<li><a class="reference external" href="#mvalues.i,OrderedTable[A,B]">mvalues iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toOrderedTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">values</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">v</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">4</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1867" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1867" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="values.i,OrderedTableRef[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#values.i%2COrderedTableRef%5BA%2CB%5D"><span class="Identifier">values</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#OrderedTableRef"><span class="Identifier">OrderedTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#lent"><span class="Identifier">lent</span></a> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt> in insertion order.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,OrderedTableRef[A,B]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#keys.i,OrderedTableRef[A,B]">keys iterator</a></li>
|
|
<li><a class="reference external" href="#mvalues.i,OrderedTableRef[A,B]">mvalues iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newOrderedTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">values</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">v</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">4</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2290" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2290" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="values.i,Table[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#values.i%2CTable%5BA%2CB%5D"><span class="Identifier">values</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#lent"><span class="Identifier">lent</span></a> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,Table[A,B]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#keys.i,Table[A,B]">keys iterator</a></li>
|
|
<li><a class="reference external" href="#mvalues.i,Table[A,B]">mvalues iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">toTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">values</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">v</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">4</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L816" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L816" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="values.i,TableRef[A,B]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#values.i%2CTableRef%5BA%2CB%5D"><span class="Identifier">values</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#TableRef"><span class="Identifier">TableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#lent"><span class="Identifier">lent</span></a> <span class="Identifier">B</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,TableRef[A,B]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#keys.i,TableRef[A,B]">keys iterator</a></li>
|
|
<li><a class="reference external" href="#mvalues.i,TableRef[A,B]">mvalues iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Punctuation">{</span>
|
|
<span class="CharLit">'o'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="DecNumber">5</span><span class="Punctuation">,</span> <span class="DecNumber">7</span><span class="Punctuation">,</span> <span class="DecNumber">9</span><span class="Punctuation">]</span><span class="Punctuation">,</span>
|
|
<span class="CharLit">'e'</span><span class="Punctuation">:</span> <span class="Operator">@</span><span class="Punctuation">[</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="DecNumber">4</span><span class="Punctuation">,</span> <span class="DecNumber">6</span><span class="Punctuation">,</span> <span class="DecNumber">8</span><span class="Punctuation">]</span>
|
|
<span class="Punctuation">}</span><span class="Operator">.</span><span class="Identifier">newTable</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">a</span><span class="Operator">.</span><span class="Identifier">values</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">v</span><span class="Operator">.</span><span class="Identifier">len</span> <span class="Operator">==</span> <span class="DecNumber">4</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L1278" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L1278" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="values.i,CountTable[A]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#values.i%2CCountTable%5BA%5D"><span class="Identifier">values</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTable"><span class="Identifier">CountTable</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,CountTable[A]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#keys.i,CountTable[A]">keys iterator</a></li>
|
|
<li><a class="reference external" href="#mvalues.i,CountTable[A]">mvalues iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">toCountTable</span><span class="Punctuation">(</span><span class="StringLit">"abracadabra"</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">values</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">v</span> <span class="Operator"><</span> <span class="DecNumber">10</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2696" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2696" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="values.i,CountTableRef[A]">
|
|
<dt><pre><span class="Keyword">iterator</span> <a href="#values.i%2CCountTableRef%5BA%5D"><span class="Identifier">values</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#CountTableRef"><span class="Identifier">CountTableRef</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">]</span><span class="Other">)</span><span class="Other">:</span> <a href="system.html#int"><span class="Identifier">int</span></a></pre></dt>
|
|
<dd>
|
|
|
|
<p>Iterates over any value in the table <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span></span></tt>.</p>
|
|
<p>See also:</p>
|
|
<ul class="simple"><li><a class="reference external" href="#pairs.i,CountTableRef[A]">pairs iterator</a></li>
|
|
<li><a class="reference external" href="#keys.i,CountTableRef[A]">keys iterator</a></li>
|
|
<li><a class="reference external" href="#mvalues.i,CountTableRef[A]">mvalues iterator</a></li>
|
|
</ul>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">let</span> <span class="Identifier">a</span> <span class="Operator">=</span> <span class="Identifier">newCountTable</span><span class="Punctuation">(</span><span class="StringLit">"abracadabra"</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">for</span> <span class="Identifier">v</span> <span class="Keyword">in</span> <span class="Identifier">values</span><span class="Punctuation">(</span><span class="Identifier">a</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">v</span> <span class="Operator"><</span> <span class="DecNumber">10</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L2973" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L2973" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="18">
|
|
<h1><a class="toc-backref" href="#18">Templates</a></h1>
|
|
<dl class="item">
|
|
<div id="withValue-templates-all">
|
|
<div id="withValue.t,Table[A,B],A,untyped,untyped,untyped_2">
|
|
<dt><pre><span class="Keyword">template</span> <a href="#withValue.t%2CTable%5BA%2CB%5D%2CA%2Cuntyped%2Cuntyped%2Cuntyped_2"><span class="Identifier">withValue</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">,</span> <span class="Identifier">body1</span><span class="Other">,</span> <span class="Identifier">body2</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if it exists, assigns it to the variable <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt> and executes <tt class="docutils literal"><span class="pre"><span class="Identifier">body</span></span></tt>
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">type</span>
|
|
<span class="Identifier">User</span> <span class="Operator">=</span> <span class="Keyword">object</span>
|
|
<span class="Identifier">name</span><span class="Punctuation">:</span> <span class="Identifier">string</span>
|
|
|
|
<span class="Keyword">proc</span> <span class="Punctuation">`</span><span class="Operator">=</span><span class="Identifier">copy</span><span class="Punctuation">`</span><span class="Punctuation">(</span><span class="Identifier">dest</span><span class="Punctuation">:</span> <span class="Keyword">var</span> <span class="Identifier">User</span><span class="Punctuation">,</span> <span class="Identifier">source</span><span class="Punctuation">:</span> <span class="Identifier">User</span><span class="Punctuation">)</span> <span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">error</span><span class="Operator">.</span><span class="Punctuation">}</span>
|
|
|
|
<span class="Keyword">proc</span> <span class="Identifier">exec</span><span class="Punctuation">(</span><span class="Identifier">t</span><span class="Punctuation">:</span> <span class="Identifier">Table</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">User</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">=</span>
|
|
<span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">withValue</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">value</span><span class="Operator">.</span><span class="Identifier">name</span> <span class="Operator">==</span> <span class="StringLit">"Hello"</span>
|
|
<span class="Keyword">do</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">false</span>
|
|
|
|
<span class="Keyword">var</span> <span class="Identifier">executedElseBranch</span> <span class="Operator">=</span> <span class="Identifier">false</span>
|
|
<span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">withValue</span><span class="Punctuation">(</span><span class="DecNumber">521</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">false</span>
|
|
<span class="Keyword">do</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">executedElseBranch</span> <span class="Operator">=</span> <span class="Identifier">true</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">executedElseBranch</span>
|
|
|
|
<span class="Keyword">var</span> <span class="Identifier">t</span> <span class="Operator">=</span> <span class="Identifier">initTable</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">User</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Identifier">User</span><span class="Punctuation">(</span><span class="Identifier">name</span><span class="Punctuation">:</span> <span class="StringLit">"Hello"</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">exec</span><span class="Punctuation">(</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L679" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L679" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="withValue.t,Table[A,B],A,untyped,untyped_2">
|
|
<dt><pre><span class="Keyword">template</span> <a href="#withValue.t%2CTable%5BA%2CB%5D%2CA%2Cuntyped%2Cuntyped_2"><span class="Identifier">withValue</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">,</span> <span class="Identifier">body</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt> if it exists, assigns it to the variable <tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt> and executes <tt class="docutils literal"><span class="pre"><span class="Identifier">body</span></span></tt>
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">type</span>
|
|
<span class="Identifier">User</span> <span class="Operator">=</span> <span class="Keyword">object</span>
|
|
<span class="Identifier">name</span><span class="Punctuation">:</span> <span class="Identifier">string</span>
|
|
|
|
<span class="Keyword">proc</span> <span class="Punctuation">`</span><span class="Operator">=</span><span class="Identifier">copy</span><span class="Punctuation">`</span><span class="Punctuation">(</span><span class="Identifier">dest</span><span class="Punctuation">:</span> <span class="Keyword">var</span> <span class="Identifier">User</span><span class="Punctuation">,</span> <span class="Identifier">source</span><span class="Punctuation">:</span> <span class="Identifier">User</span><span class="Punctuation">)</span> <span class="Punctuation">{</span><span class="Operator">.</span><span class="Identifier">error</span><span class="Operator">.</span><span class="Punctuation">}</span>
|
|
|
|
<span class="Keyword">proc</span> <span class="Identifier">exec</span><span class="Punctuation">(</span><span class="Identifier">t</span><span class="Punctuation">:</span> <span class="Identifier">Table</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">User</span><span class="Punctuation">]</span><span class="Punctuation">)</span> <span class="Operator">=</span>
|
|
<span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">withValue</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">value</span><span class="Operator">.</span><span class="Identifier">name</span> <span class="Operator">==</span> <span class="StringLit">"Hello"</span>
|
|
|
|
<span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">withValue</span><span class="Punctuation">(</span><span class="DecNumber">521</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">false</span>
|
|
|
|
<span class="Keyword">var</span> <span class="Identifier">t</span> <span class="Operator">=</span> <span class="Identifier">initTable</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">User</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Identifier">User</span><span class="Punctuation">(</span><span class="Identifier">name</span><span class="Punctuation">:</span> <span class="StringLit">"Hello"</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">exec</span><span class="Punctuation">(</span><span class="Punctuation">)</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L716" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L716" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="withValue.t,Table[A,B],A,untyped,untyped,untyped">
|
|
<dt><pre><span class="Keyword">template</span> <a href="#withValue.t%2CTable%5BA%2CB%5D%2CA%2Cuntyped%2Cuntyped%2Cuntyped"><span class="Identifier">withValue</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span>
|
|
<span class="Identifier">value</span><span class="Other">,</span> <span class="Identifier">body1</span><span class="Other">,</span> <span class="Identifier">body2</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt>.</p>
|
|
<p><tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt> can be modified in the scope of the <tt class="docutils literal"><span class="pre"><span class="Identifier">withValue</span></span></tt> call.</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">type</span>
|
|
<span class="Identifier">User</span> <span class="Operator">=</span> <span class="Keyword">object</span>
|
|
<span class="Identifier">name</span><span class="Punctuation">:</span> <span class="Identifier">string</span>
|
|
<span class="Identifier">uid</span><span class="Punctuation">:</span> <span class="Identifier">int</span>
|
|
|
|
<span class="Keyword">var</span> <span class="Identifier">t</span> <span class="Operator">=</span> <span class="Identifier">initTable</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">User</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">u</span> <span class="Operator">=</span> <span class="Identifier">User</span><span class="Punctuation">(</span><span class="Identifier">name</span><span class="Punctuation">:</span> <span class="StringLit">"Hello"</span><span class="Punctuation">,</span> <span class="Identifier">uid</span><span class="Punctuation">:</span> <span class="DecNumber">99</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Identifier">u</span>
|
|
|
|
<span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">withValue</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Comment"># block is executed only if `key` in `t`</span>
|
|
<span class="Identifier">value</span><span class="Operator">.</span><span class="Identifier">name</span> <span class="Operator">=</span> <span class="StringLit">"Nim"</span>
|
|
<span class="Identifier">value</span><span class="Operator">.</span><span class="Identifier">uid</span> <span class="Operator">=</span> <span class="DecNumber">1314</span>
|
|
|
|
<span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">withValue</span><span class="Punctuation">(</span><span class="DecNumber">521</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">doAssert</span> <span class="Identifier">false</span>
|
|
<span class="Keyword">do</span><span class="Punctuation">:</span>
|
|
<span class="Comment"># block is executed when `key` not in `t`</span>
|
|
<span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">1314</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Identifier">User</span><span class="Punctuation">(</span><span class="Identifier">name</span><span class="Punctuation">:</span> <span class="StringLit">"exist"</span><span class="Punctuation">,</span> <span class="Identifier">uid</span><span class="Punctuation">:</span> <span class="DecNumber">521</span><span class="Punctuation">)</span>
|
|
|
|
<span class="Identifier">assert</span> <span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">name</span> <span class="Operator">==</span> <span class="StringLit">"Nim"</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">uid</span> <span class="Operator">==</span> <span class="DecNumber">1314</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">1314</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">name</span> <span class="Operator">==</span> <span class="StringLit">"exist"</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">1314</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">uid</span> <span class="Operator">==</span> <span class="DecNumber">521</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L638" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L638" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
<div id="withValue.t,Table[A,B],A,untyped,untyped">
|
|
<dt><pre><span class="Keyword">template</span> <a href="#withValue.t%2CTable%5BA%2CB%5D%2CA%2Cuntyped%2Cuntyped"><span class="Identifier">withValue</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">(</span><span class="Identifier">t</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="tables.html#Table"><span class="Identifier">Table</span></a><span class="Other">[</span><span class="Identifier">A</span><span class="Other">,</span> <span class="Identifier">B</span><span class="Other">]</span><span class="Other">;</span> <span class="Identifier">key</span><span class="Other">:</span> <span class="Identifier">A</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">,</span> <span class="Identifier">body</span><span class="Other">:</span> <a href="system.html#untyped"><span class="Identifier">untyped</span></a><span class="Other">)</span></pre></dt>
|
|
<dd>
|
|
|
|
<p>Retrieves the value at <tt class="docutils literal"><span class="pre"><span class="Identifier">t</span><span class="Punctuation">[</span><span class="Identifier">key</span><span class="Punctuation">]</span></span></tt>.</p>
|
|
<p><tt class="docutils literal"><span class="pre"><span class="Identifier">value</span></span></tt> can be modified in the scope of the <tt class="docutils literal"><span class="pre"><span class="Identifier">withValue</span></span></tt> call.</p>
|
|
|
|
<p><strong class="examples_text">Example:</strong></p>
|
|
<pre class="listing"><span class="Keyword">type</span>
|
|
<span class="Identifier">User</span> <span class="Operator">=</span> <span class="Keyword">object</span>
|
|
<span class="Identifier">name</span><span class="Punctuation">:</span> <span class="Identifier">string</span>
|
|
<span class="Identifier">uid</span><span class="Punctuation">:</span> <span class="Identifier">int</span>
|
|
|
|
<span class="Keyword">var</span> <span class="Identifier">t</span> <span class="Operator">=</span> <span class="Identifier">initTable</span><span class="Punctuation">[</span><span class="Identifier">int</span><span class="Punctuation">,</span> <span class="Identifier">User</span><span class="Punctuation">]</span><span class="Punctuation">(</span><span class="Punctuation">)</span>
|
|
<span class="Keyword">let</span> <span class="Identifier">u</span> <span class="Operator">=</span> <span class="Identifier">User</span><span class="Punctuation">(</span><span class="Identifier">name</span><span class="Punctuation">:</span> <span class="StringLit">"Hello"</span><span class="Punctuation">,</span> <span class="Identifier">uid</span><span class="Punctuation">:</span> <span class="DecNumber">99</span><span class="Punctuation">)</span>
|
|
<span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">]</span> <span class="Operator">=</span> <span class="Identifier">u</span>
|
|
|
|
<span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">withValue</span><span class="Punctuation">(</span><span class="DecNumber">1</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Comment"># block is executed only if `key` in `t`</span>
|
|
<span class="Identifier">value</span><span class="Operator">.</span><span class="Identifier">name</span> <span class="Operator">=</span> <span class="StringLit">"Nim"</span>
|
|
<span class="Identifier">value</span><span class="Operator">.</span><span class="Identifier">uid</span> <span class="Operator">=</span> <span class="DecNumber">1314</span>
|
|
|
|
<span class="Identifier">t</span><span class="Operator">.</span><span class="Identifier">withValue</span><span class="Punctuation">(</span><span class="DecNumber">2</span><span class="Punctuation">,</span> <span class="Identifier">value</span><span class="Punctuation">)</span><span class="Punctuation">:</span>
|
|
<span class="Identifier">value</span><span class="Operator">.</span><span class="Identifier">name</span> <span class="Operator">=</span> <span class="StringLit">"No"</span>
|
|
<span class="Identifier">value</span><span class="Operator">.</span><span class="Identifier">uid</span> <span class="Operator">=</span> <span class="DecNumber">521</span>
|
|
|
|
<span class="Identifier">assert</span> <span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">name</span> <span class="Operator">==</span> <span class="StringLit">"Nim"</span>
|
|
<span class="Identifier">assert</span> <span class="Identifier">t</span><span class="Punctuation">[</span><span class="DecNumber">1</span><span class="Punctuation">]</span><span class="Operator">.</span><span class="Identifier">uid</span> <span class="Operator">==</span> <span class="DecNumber">1314</span></pre>
|
|
<a href="https://github.com/nim-lang/Nim/tree/devel/lib/pure/collections/tables.nim#L604" class="link-seesrc" target="_blank">Source</a>
|
|
<a href="https://github.com/nim-lang/Nim/edit/devel/lib/pure/collections/tables.nim#L604" class="link-seesrc" target="_blank" >Edit</a>
|
|
|
|
</dd>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</dl>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="twelve-columns footer">
|
|
<span class="nim-sprite"></span>
|
|
<br>
|
|
<small style="color: var(--hint);">Made with Nim. Generated: 2025-12-28 23:30:19 UTC</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script defer data-domain="nim-lang.org" src="https://plausible.io/js/plausible.js"></script>
|
|
|
|
</body>
|
|
</html>
|