mirror of
https://github.com/duke-git/lancet.git
synced 2026-03-01 00:35:28 +08:00
2508 lines
700 KiB
JavaScript
2508 lines
700 KiB
JavaScript
import{_ as l,o as p,c as o,k as s,a,X as n}from"./chunks/framework.6e839c56.js";const k=JSON.parse('{"title":"Slice","description":"","frontmatter":{},"headers":[],"relativePath":"en/api/packages/slice.md","filePath":"en/api/packages/slice.md"}'),e={name:"en/api/packages/slice.md"},t=s("h1",{id:"Slice",tabindex:"-1"},[a("Slice "),s("a",{class:"header-anchor",href:"#Slice","aria-label":'Permalink to "Slice"'},"")],-1),c=s("p",null,"Package slice implements some functions to manipulate slice.",-1),r=s("div",{STYLE:"page-break-after: always;"},null,-1),y=s("h2",{id:"Source-",tabindex:"-1"},[a("Source: "),s("a",{class:"header-anchor",href:"#Source-","aria-label":'Permalink to "Source:"'},"")],-1),F=s("ul",null,[s("li",null,[s("a",{href:"https://github.com/duke-git/lancet/blob/main/slice/slice.go",target:"_blank",rel:"noreferrer"},"https://github.com/duke-git/lancet/blob/main/slice/slice.go")])],-1),i=s("div",{STYLE:"page-break-after: always;"},null,-1),u=n(`<h2 id="Usage-" tabindex="-1">Usage: <a class="header-anchor" href="#Usage-" aria-label="Permalink to "Usage:""></a></h2><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span></code></pre></div>`,2),E=s("div",{STYLE:"page-break-after: always;"},null,-1),A=n('<h2 id="Index" tabindex="-1">Index <a class="header-anchor" href="#Index" aria-label="Permalink to "Index""></a></h2><ul><li><a href="#AppendIfAbsent">AppendIfAbsent</a></li><li><a href="#Contain">Contain</a></li><li><a href="#ContainBy">ContainBy</a></li><li><a href="#ContainSubSlice">ContainSubSlice</a></li><li><a href="#Chunk">Chunk</a></li><li><a href="#Compact">Compact</a></li><li><a href="#Concat">Concat</a></li><li><a href="#Count">Count</a></li><li><a href="#CountBy">CountBy</a></li><li><a href="#Difference">Difference</a></li><li><a href="#DifferenceBy">DifferenceBy</a></li><li><a href="#DifferenceWith">DifferenceWith</a></li><li><a href="#DeleteAt">DeleteAt</a></li><li><a href="#Drop">Drop</a></li><li><a href="#DropRight">DropRight</a></li><li><a href="#DropWhile">DropWhile</a></li><li><a href="#DropRightWhile">DropRightWhile</a></li><li><a href="#Equal">Equal</a></li><li><a href="#EqualWith">EqualWith</a></li><li><a href="#Every">Every</a></li><li><a href="#Filter">Filter</a></li><li><a href="#Find">Find<sup>deprecated</sup></a></li><li><a href="#FindBy">FindBy</a></li><li><a href="#FindLast">FindLast<sup>deprecated</sup></a></li><li><a href="#FindLastBy">FindLastBy</a></li><li><a href="#Flatten">Flatten</a></li><li><a href="#FlattenDeep">FlattenDeep</a></li><li><a href="#ForEach">ForEach</a></li><li><a href="#ForEachWithBreak">ForEachWithBreak</a></li><li><a href="#GroupBy">GroupBy</a></li><li><a href="#GroupWith">GroupWith</a></li><li><a href="#IntSlice">IntSlice<sup>deprecated</sup></a></li><li><a href="#InterfaceSlice">InterfaceSlice<sup>deprecated</sup></a></li><li><a href="#Intersection">Intersection</a></li><li><a href="#InsertAt">InsertAt</a></li><li><a href="#IndexOf">IndexOf</a></li><li><a href="#LastIndexOf">LastIndexOf</a></li><li><a href="#Map">Map</a></li><li><a href="#FilterMap">FilterMap</a></li><li><a href="#FlatMap">FlatMap</a></li><li><a href="#Merge">Merge</a></li><li><a href="#Reverse">Reverse</a></li><li><a href="#Reduce">Reduce<sup>deprecated</sup></a></li><li><a href="#ReduceBy">ReduceBy</a></li><li><a href="#ReduceRight">ReduceRight</a></li><li><a href="#Replace">Replace</a></li><li><a href="#ReplaceAll">ReplaceAll</a></li><li><a href="#Repeat">Repeat</a></li><li><a href="#Shuffle">Shuffle</a></li><li><a href="#IsAscending">IsAscending</a></li><li><a href="#IsDescending">IsDescending</a></li><li><a href="#IsSorted">IsSorted</a></li><li><a href="#IsSortedByKey">IsSortedByKey</a></li><li><a href="#Sort">Sort</a></li><li><a href="#SortBy">SortBy</a></li><li><a href="#SortByField">SortByField<sup>deprecated</sup></a></li><li><a href="#Some">Some</a></li><li><a href="#StringSlice">StringSlice<sup>deprecated</sup></a></li><li><a href="#SymmetricDifference">SymmetricDifference</a></li><li><a href="#ToSlice">ToSlice</a></li><li><a href="#ToSlicePointer">ToSlicePointer</a></li><li><a href="#Unique">Unique</a></li><li><a href="#UniqueBy">UniqueBy</a></li><li><a href="#Union">Union</a></li><li><a href="#UnionBy">UnionBy</a></li><li><a href="#UpdateAt">UpdateAt</a></li><li><a href="#Without">Without</a></li><li><a href="#KeyBy">KeyBy</a></li><li><a href="#Join">Join</a></li></ul>',2),d=s("div",{STYLE:"page-break-after: always;"},null,-1),B=n(`<link rel="stylesheet" type="text/css" href="/styles/api_doc.css"><h2 id="Documentation" tabindex="-1">Documentation <a class="header-anchor" href="#Documentation" aria-label="Permalink to "Documentation""></a></h2><h3 id="AppendIfAbsent" tabindex="-1"><span id="AppendIfAbsent">AppendIfAbsent</span> <a class="header-anchor" href="#AppendIfAbsent" aria-label="Permalink to "<span id="AppendIfAbsent">AppendIfAbsent</span>""></a></h3><p>If slice doesn't contain the item, append it to the slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> AppendIfAbsent[T comparable](slice []T, item T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> AppendIfAbsent</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/GNdv7Jg2Taj" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">AppendIfAbsent</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">AppendIfAbsent</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">AppendIfAbsent</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">AppendIfAbsent</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Contain" tabindex="-1"><span id="Contain">Contain</span> <a class="header-anchor" href="#Contain" aria-label="Permalink to "<span id="Contain">Contain</span>""></a></h3><p>Check if the target value is in the slice or not.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Contain[T comparable](slice []T, target T) </span><span style="color:#97E1F1;font-style:italic;">bool</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Contain</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> target T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/_454yEHcNjf" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Contain</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Contain</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Contain</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Contain</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// false</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="ContainBy" tabindex="-1"><span id="ContainBy">ContainBy</span> <a class="header-anchor" href="#ContainBy" aria-label="Permalink to "<span id="ContainBy">ContainBy</span>""></a></h3><p>returns true if predicate function return true.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> ContainBy[T any](slice []T, predicate </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> ContainBy</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> predicate </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/49tkHfX4GNc" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">type</span><span style="color:#F6F6F4;"> </span><span style="color:#97E1F1;font-style:italic;">foo</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">struct</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> A </span><span style="color:#97E1F1;font-style:italic;">string</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> B </span><span style="color:#97E1F1;font-style:italic;">int</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> array1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []foo{{A: </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">1</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, B: </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">}, {A: </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">2</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, B: </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">}}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ContainBy</span><span style="color:#F6F6F4;">(array1, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(f foo) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> { </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> f.A </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">1</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">&&</span><span style="color:#F6F6F4;"> f.B </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ContainBy</span><span style="color:#F6F6F4;">(array1, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(f foo) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> { </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> f.A </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">2</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">&&</span><span style="color:#F6F6F4;"> f.B </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> array2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ContainBy</span><span style="color:#F6F6F4;">(array2, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(t </span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> { </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> t </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result4 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ContainBy</span><span style="color:#F6F6F4;">(array2, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(t </span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> { </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> t </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">d</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result4)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">type</span><span style="color:#393A34;"> </span><span style="color:#2E8F82;">foo</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">struct</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> A </span><span style="color:#AB5959;">string</span></span>
|
||
<span class="line"><span style="color:#393A34;"> B </span><span style="color:#AB5959;">int</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">array1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">foo</span><span style="color:#999999;">{{</span><span style="color:#393A34;">A</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">1</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> B</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span><span style="color:#393A34;">A</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">2</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> B</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">}}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ContainBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">array1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">f foo</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> f</span><span style="color:#999999;">.</span><span style="color:#393A34;">A </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">1</span><span style="color:#B5695999;">"</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">&&</span><span style="color:#393A34;"> f</span><span style="color:#999999;">.</span><span style="color:#393A34;">B </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ContainBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">array1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">f foo</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> f</span><span style="color:#999999;">.</span><span style="color:#393A34;">A </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">2</span><span style="color:#B5695999;">"</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">&&</span><span style="color:#393A34;"> f</span><span style="color:#999999;">.</span><span style="color:#393A34;">B </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">array2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ContainBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">array2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">t </span><span style="color:#AB5959;">string</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> t </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result4</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ContainBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">array2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">t </span><span style="color:#AB5959;">string</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> t </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">d</span><span style="color:#B5695999;">"</span><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result4</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// false</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// false</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="ContainSubSlice" tabindex="-1"><span id="ContainSubSlice">ContainSubSlice</span> <a class="header-anchor" href="#ContainSubSlice" aria-label="Permalink to "<span id="ContainSubSlice">ContainSubSlice</span>""></a></h3><p>Check if the slice contain subslice or not.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> ContainSubSlice[T comparable](slice, subSlice []T) </span><span style="color:#97E1F1;font-style:italic;">bool</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> ContainSubSlice</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice</span><span style="color:#999999;">,</span><span style="color:#393A34;"> subSlice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/bcuQ3UT6Sev" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ContainSubSlice</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ContainSubSlice</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">d</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ContainSubSlice</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ContainSubSlice</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">d</span><span style="color:#B5695999;">"</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// false</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Chunk" tabindex="-1"><span id="Chunk">Chunk</span> <a class="header-anchor" href="#Chunk" aria-label="Permalink to "<span id="Chunk">Chunk</span>""></a></h3><p>Creates an slice of elements split into groups the length of \`size\`.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Chunk[T any](slice []T, size </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) [][]T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Chunk</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> size </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[][]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/b4Pou5j2L_C" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> arr </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">d</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">e</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Chunk</span><span style="color:#F6F6F4;">(arr, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Chunk</span><span style="color:#F6F6F4;">(arr, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Chunk</span><span style="color:#F6F6F4;">(arr, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result4 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Chunk</span><span style="color:#F6F6F4;">(arr, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result5 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Chunk</span><span style="color:#F6F6F4;">(arr, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result4)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result5)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [[a] [b] [c] [d] [e]]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [[a b] [c d] [e]]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [[a b c] [d e]]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [[a b c d] [e]]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [[a b c d e]]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">arr</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">d</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">e</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Chunk</span><span style="color:#999999;">(</span><span style="color:#393A34;">arr</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Chunk</span><span style="color:#999999;">(</span><span style="color:#393A34;">arr</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Chunk</span><span style="color:#999999;">(</span><span style="color:#393A34;">arr</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result4</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Chunk</span><span style="color:#999999;">(</span><span style="color:#393A34;">arr</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result5</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Chunk</span><span style="color:#999999;">(</span><span style="color:#393A34;">arr</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result4</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result5</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [[a] [b] [c] [d] [e]]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [[a b] [c d] [e]]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [[a b c] [d e]]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [[a b c d] [e]]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [[a b c d e]]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Compact" tabindex="-1"><span id="Compact">Compact</span> <a class="header-anchor" href="#Compact" aria-label="Permalink to "<span id="Compact">Compact</span>""></a></h3><p>Creates an slice with all falsey values removed. The values false, nil, 0, and "" are falsey.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Compact[T comparable](slice []T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Compact</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/pO5AnxEr3TK" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Compact</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Compact</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Compact</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">""</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">0</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result4 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Compact</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">false</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">true</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">true</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result4)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// []</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 2 3]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b 0]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [true true]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Compact</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">0</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Compact</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">0</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Compact</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">""</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">0</span><span style="color:#B5695999;">"</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result4</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Compact</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">bool</span><span style="color:#999999;">{</span><span style="color:#1E754F;">false</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">true</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">true</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result4</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// []</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 3]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b 0]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [true true]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Concat" tabindex="-1"><span id="Concat">Concat</span> <a class="header-anchor" href="#Concat" aria-label="Permalink to "<span id="Concat">Concat</span>""></a></h3><p>Creates a new slice concatenating slice with any additional slices.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Concat[T any](slice []T, slices </span><span style="color:#F286C4;">...</span><span style="color:#F6F6F4;">[]T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Concat</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> slices </span><span style="color:#AB5959;">...</span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/gPt-q7zr5mk" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Concat</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">}, []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Concat</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">d</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 2 3 4]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c d]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Concat</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Concat</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">d</span><span style="color:#B5695999;">"</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 3 4]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c d]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Count" tabindex="-1"><span id="Count">Count</span> <a class="header-anchor" href="#Count" aria-label="Permalink to "<span id="Count">Count</span>""></a></h3><p>Returns the number of occurrences of the given item in the slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Count[T comparable](slice []T, item T) </span><span style="color:#97E1F1;font-style:italic;">int</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Count</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/Mj4oiEnQvRJ" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Count</span><span style="color:#F6F6F4;">(nums, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Count</span><span style="color:#F6F6F4;">(nums, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 1</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 2</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Count</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Count</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 1</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 2</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="CountBy" tabindex="-1"><span id="CountBy">CountBy</span> <a class="header-anchor" href="#CountBy" aria-label="Permalink to "<span id="CountBy">CountBy</span>""></a></h3><p>Iterates over elements of slice with predicate function, returns the number of all matched elements.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> CountBy[T any](slice []T, predicate </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">int</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> CountBy</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> predicate </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/tHOccTMDZCC" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> isEven </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(i, num </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> num</span><span style="color:#F286C4;">%</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">0</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">CountBy</span><span style="color:#F6F6F4;">(nums, isEven)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 2</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">isEven</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">i</span><span style="color:#999999;">,</span><span style="color:#393A34;"> num </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> num</span><span style="color:#AB5959;">%</span><span style="color:#2F798A;">2</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">CountBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> isEven</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 2</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Difference" tabindex="-1"><span id="Difference">Difference</span> <a class="header-anchor" href="#Difference" aria-label="Permalink to "<span id="Difference">Difference</span>""></a></h3><p>Creates an slice of whose element not included in the other given slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Difference[T comparable](slice, comparedSlice []T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Difference</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice</span><span style="color:#999999;">,</span><span style="color:#393A34;"> comparedSlice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/VXvadzLzhDa" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">6</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Difference</span><span style="color:#F6F6F4;">(s1, s2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 2 3]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">6</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Difference</span><span style="color:#999999;">(</span><span style="color:#393A34;">s1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> s2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 3]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="DifferenceBy" tabindex="-1"><span id="DifferenceBy">DifferenceBy</span> <a class="header-anchor" href="#DifferenceBy" aria-label="Permalink to "<span id="DifferenceBy">DifferenceBy</span>""></a></h3><p>DifferenceBy accepts iteratee func which is invoked for each element of slice and values to generate the criterion by which they're compared.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> DifferenceBy[T comparable](slice []T, comparedSlice []T, iteratee </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> DifferenceBy</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> comparedSlice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> iteratee </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/DiivgwM5OnC" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> addOne </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(i </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, v </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> v </span><span style="color:#F286C4;">+</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">1</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DifferenceBy</span><span style="color:#F6F6F4;">(s1, s2, addOne)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 2]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">addOne</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">i </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> v </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> v </span><span style="color:#AB5959;">+</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DifferenceBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">s1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> s2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> addOne</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="DifferenceWith" tabindex="-1"><span id="DifferenceWith">DifferenceWith</span> <a class="header-anchor" href="#DifferenceWith" aria-label="Permalink to "<span id="DifferenceWith">DifferenceWith</span>""></a></h3><p>DifferenceWith accepts comparator which is invoked to compare elements of slice to values. The order and references of result values are determined by the first slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> DifferenceWith[T any](slice []T, comparedSlice []T, comparator </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(value, otherValue T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> DifferenceWith</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> comparedSlice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> comparator </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">value</span><span style="color:#999999;">,</span><span style="color:#393A34;"> otherValue T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/v2U2deugKuV" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">6</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">7</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">8</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> isDouble </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(v1, v2 </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> v2 </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">2</span><span style="color:#F286C4;">*</span><span style="color:#F6F6F4;">v1</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DifferenceWith</span><span style="color:#F6F6F4;">(s1, s2, isDouble)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 5]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">6</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">7</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">8</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">isDouble</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">v1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> v2 </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> v2 </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#AB5959;">*</span><span style="color:#393A34;">v1</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DifferenceWith</span><span style="color:#999999;">(</span><span style="color:#393A34;">s1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> s2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> isDouble</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 5]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="DeleteAt" tabindex="-1"><span id="DeleteAt">DeleteAt</span> <a class="header-anchor" href="#DeleteAt" aria-label="Permalink to "<span id="DeleteAt">DeleteAt</span>""></a></h3><p>Delete the element of slice from start index to end index - 1.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> DeleteAt[T any](slice []T, start </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, end </span><span style="color:#F286C4;">...</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">)</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> DeleteAt</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> start </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> end </span><span style="color:#AB5959;">...int</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/pJ-d6MUWcvK" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DeleteAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#F286C4;">-</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DeleteAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DeleteAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DeleteAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">-</span><span style="color:#2F798A;">1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DeleteAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DeleteAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [b c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [c]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Drop" tabindex="-1"><span id="Drop">Drop</span> <a class="header-anchor" href="#Drop" aria-label="Permalink to "<span id="Drop">Drop</span>""></a></h3><p>Drop n elements from the start of a slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Drop[T any](slice []T, n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Drop</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> n </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/jnPO2yQsT8H" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Drop</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Drop</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Drop</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#F286C4;">-</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result4 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Drop</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result4)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// []</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Drop</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Drop</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Drop</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">-</span><span style="color:#2F798A;">1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result4</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Drop</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result4</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [b c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// []</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="DropRight" tabindex="-1"><span id="DropRight">DropRight</span> <a class="header-anchor" href="#DropRight" aria-label="Permalink to "<span id="DropRight">DropRight</span>""></a></h3><p>Drop n elements from the end of a slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> DropRight[T any](slice []T, n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> DropRight</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> n </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/8bcXvywZezG" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DropRight</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DropRight</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DropRight</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#F286C4;">-</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result4 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DropRight</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result4)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// []</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DropRight</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DropRight</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DropRight</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">-</span><span style="color:#2F798A;">1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result4</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DropRight</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result4</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// []</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="DropWhile" tabindex="-1"><span id="DropWhile">DropWhile</span> <a class="header-anchor" href="#DropWhile" aria-label="Permalink to "<span id="DropWhile">DropWhile</span>""></a></h3><p>Drop n elements from the start of a slice while predicate function returns true.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> DropWhile[T any](slice []T, predicate </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> DropWhile</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> predicate </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/4rt252UV_qs" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DropWhile</span><span style="color:#F6F6F4;">(numbers, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> n </span><span style="color:#F286C4;">!=</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">2</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DropWhile</span><span style="color:#F6F6F4;">(numbers, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DropWhile</span><span style="color:#F6F6F4;">(numbers, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> n </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">0</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [2 3 4 5]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// []</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 2 3 4 5]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DropWhile</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">n </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> n </span><span style="color:#AB5959;">!=</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DropWhile</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">n </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DropWhile</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">n </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> n </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [2 3 4 5]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// []</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 3 4 5]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="DropRightWhile" tabindex="-1"><span id="DropRightWhile">DropRightWhile</span> <a class="header-anchor" href="#DropRightWhile" aria-label="Permalink to "<span id="DropRightWhile">DropRightWhile</span>""></a></h3><p>Drop n elements from the end of a slice while predicate function returns true.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> DropRightWhile[T any](slice []T, predicate </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> DropRightWhile</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> predicate </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/6wyK3zMY56e" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> numbers </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DropRightWhile</span><span style="color:#F6F6F4;">(numbers, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> n </span><span style="color:#F286C4;">!=</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">2</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DropRightWhile</span><span style="color:#F6F6F4;">(numbers, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">DropRightWhile</span><span style="color:#F6F6F4;">(numbers, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> n </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">0</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 2]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// []</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 2 3 4 5]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">numbers</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DropRightWhile</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">n </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> n </span><span style="color:#AB5959;">!=</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DropRightWhile</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">n </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">DropRightWhile</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">n </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> n </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// []</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 3 4 5]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Equal" tabindex="-1"><span id="Equal">Equal</span> <a class="header-anchor" href="#Equal" aria-label="Permalink to "<span id="Equal">Equal</span>""></a></h3><p>Check if two slices are equal: the same length and all elements' order and value are equal.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Equal[T comparable](slice1, slice2 []T) </span><span style="color:#97E1F1;font-style:italic;">bool</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Equal</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> slice2 </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/WcRQJ37ifPa" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Equal</span><span style="color:#F6F6F4;">(s1, s2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Equal</span><span style="color:#F6F6F4;">(s1, s3)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Equal</span><span style="color:#999999;">(</span><span style="color:#393A34;">s1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> s2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Equal</span><span style="color:#999999;">(</span><span style="color:#393A34;">s1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> s3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// false</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="EqualWith" tabindex="-1"><span id="EqualWith">EqualWith</span> <a class="header-anchor" href="#EqualWith" aria-label="Permalink to "<span id="EqualWith">EqualWith</span>""></a></h3><p>Check if two slices are equal with comparator func.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> EqualWith[T, U any](slice1 []T, slice2 []U, comparator </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(T, U) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> EqualWith</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> U any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice1 </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> slice2 </span><span style="color:#999999;">[]</span><span style="color:#393A34;">U</span><span style="color:#999999;">,</span><span style="color:#393A34;"> comparator </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> U</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/b9iygtgsHI1" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">6</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> isDouble </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(a, b </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> b </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> a</span><span style="color:#F286C4;">*</span><span style="color:#BF9EEE;">2</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">EqualWith</span><span style="color:#F6F6F4;">(s1, s2, isDouble)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">6</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">isDouble</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">a</span><span style="color:#999999;">,</span><span style="color:#393A34;"> b </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> b </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> a</span><span style="color:#AB5959;">*</span><span style="color:#2F798A;">2</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">EqualWith</span><span style="color:#999999;">(</span><span style="color:#393A34;">s1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> s2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> isDouble</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Every" tabindex="-1"><span id="Every">Every</span> <a class="header-anchor" href="#Every" aria-label="Permalink to "<span id="Every">Every</span>""></a></h3><p>Return true if all of the values in the slice pass the predicate function.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Every[T any](slice []T, predicate </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Every</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> predicate </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/R8U6Sl-j8cD" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> isEven </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(i, num </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> num</span><span style="color:#F286C4;">%</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">0</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Every</span><span style="color:#F6F6F4;">(nums, isEven)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">isEven</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">i</span><span style="color:#999999;">,</span><span style="color:#393A34;"> num </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> num</span><span style="color:#AB5959;">%</span><span style="color:#2F798A;">2</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Every</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> isEven</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// false</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Filter" tabindex="-1"><span id="Filter">Filter</span> <a class="header-anchor" href="#Filter" aria-label="Permalink to "<span id="Filter">Filter</span>""></a></h3><p>Return all elements which match the function.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Filter[T any](slice []T, predicate </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Filter</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> predicate </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/SdPna-7qK4T" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> isEven </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(i, num </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> num</span><span style="color:#F286C4;">%</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">0</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Filter</span><span style="color:#F6F6F4;">(nums, isEven)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [2 4]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">isEven</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">i</span><span style="color:#999999;">,</span><span style="color:#393A34;"> num </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> num</span><span style="color:#AB5959;">%</span><span style="color:#2F798A;">2</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Filter</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> isEven</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [2 4]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Find-deprecated-use-FindBy-" tabindex="-1"><span id="Find">Find(deprecated: use FindBy)</span> <a class="header-anchor" href="#Find-deprecated-use-FindBy-" aria-label="Permalink to "<span id="Find">Find(deprecated: use FindBy)</span>""></a></h3><p>Iterates over elements of slice, returning the first one that passes a truth test on function.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Find[T any](slice []T, predicate </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) (</span><span style="color:#F286C4;">*</span><span style="color:#F6F6F4;">T, </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">)</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Find</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> predicate </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span><span style="color:#AB5959;">*</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/CBKeBoHVLgq" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> isEven </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(i, num </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> num</span><span style="color:#F286C4;">%</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">0</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result, ok </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Find</span><span style="color:#F6F6F4;">(nums, isEven)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(</span><span style="color:#F286C4;">*</span><span style="color:#F6F6F4;">result)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(ok)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 2</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">isEven</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">i</span><span style="color:#999999;">,</span><span style="color:#393A34;"> num </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> num</span><span style="color:#AB5959;">%</span><span style="color:#2F798A;">2</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B07D48;">ok</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Find</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> isEven</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#AB5959;">*</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">ok</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 2</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="FindBy" tabindex="-1"><span id="FindBy">FindBy</span> <a class="header-anchor" href="#FindBy" aria-label="Permalink to "<span id="FindBy">FindBy</span>""></a></h3><p>Iterates over elements of slice, returning the first one that passes a truth test on predicate function.If return T is nil or zero value then no items matched the predicate func. In contrast to Find or FindLast, its return value no longer requires dereferencing.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> FindBy[T any](slice []T, predicate </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) (v T, ok </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">)</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> FindBy</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> predicate </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">v T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> ok </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/n1lysBYl-GB" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> isEven </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(i, num </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> num</span><span style="color:#F286C4;">%</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">0</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result, ok </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">FindBy</span><span style="color:#F6F6F4;">(nums, isEven)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(ok)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 2</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">isEven</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">i</span><span style="color:#999999;">,</span><span style="color:#393A34;"> num </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> num</span><span style="color:#AB5959;">%</span><span style="color:#2F798A;">2</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B07D48;">ok</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">FindBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> isEven</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">ok</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 2</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="FindLast-deprecated-use-FindLastBy-" tabindex="-1"><span id="FindLast">FindLast(deprecated: use FindLastBy)</span> <a class="header-anchor" href="#FindLast-deprecated-use-FindLastBy-" aria-label="Permalink to "<span id="FindLast">FindLast(deprecated: use FindLastBy)</span>""></a></h3><p>iterates over elements of slice from end to begin, returning the last one that passes a truth test on function.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> FindLast[T any](slice []T, predicate </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) (</span><span style="color:#F286C4;">*</span><span style="color:#F6F6F4;">T, </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">)</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> FindLast</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> predicate </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span><span style="color:#AB5959;">*</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/FFDPV_j7URd" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> isEven </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(i, num </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> num</span><span style="color:#F286C4;">%</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">0</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result, ok </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">FindLast</span><span style="color:#F6F6F4;">(nums, isEven)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(</span><span style="color:#F286C4;">*</span><span style="color:#F6F6F4;">result)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(ok)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 4</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">isEven</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">i</span><span style="color:#999999;">,</span><span style="color:#393A34;"> num </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> num</span><span style="color:#AB5959;">%</span><span style="color:#2F798A;">2</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B07D48;">ok</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">FindLast</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> isEven</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#AB5959;">*</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">ok</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 4</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="FindLastBy" tabindex="-1"><span id="FindLastBy">FindLastBy</span> <a class="header-anchor" href="#FindLastBy" aria-label="Permalink to "<span id="FindLastBy">FindLastBy</span>""></a></h3><p>FindLastBy iterates over elements of slice, returning the last one that passes a truth test on predicate function. If return T is nil or zero value then no items matched the predicate func. In contrast to Find or FindLast, its return value no longer requires dereferencing.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> FindLastBy[T any](slice []T, predicate </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) (v T, ok </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">)</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> FindLastBy</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> predicate </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">v T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> ok </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/8iqomzyCl_s" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> isEven </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(i, num </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> num</span><span style="color:#F286C4;">%</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">0</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result, ok </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">FindLastBy</span><span style="color:#F6F6F4;">(nums, isEven)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(ok)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 4</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">isEven</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">i</span><span style="color:#999999;">,</span><span style="color:#393A34;"> num </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> num</span><span style="color:#AB5959;">%</span><span style="color:#2F798A;">2</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B07D48;">ok</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">FindLastBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> isEven</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">ok</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 4</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Flatten" tabindex="-1"><span id="Flatten">Flatten</span> <a class="header-anchor" href="#Flatten" aria-label="Permalink to "<span id="Flatten">Flatten</span>""></a></h3><p>Flatten slice with one level.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">Flatten</span><span style="color:#F6F6F4;">(slice any) any</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">Flatten</span><span style="color:#999999;">(</span><span style="color:#393A34;">slice any</span><span style="color:#999999;">)</span><span style="color:#393A34;"> any</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/hYa3cBEevtm" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> arrs </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> [][][]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{{{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}}, {{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">d</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}}}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Flatten</span><span style="color:#F6F6F4;">(arrs)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [[a b] [c d]]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">arrs</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[][][]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{{{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}},</span><span style="color:#393A34;"> </span><span style="color:#999999;">{{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">d</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}}}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Flatten</span><span style="color:#999999;">(</span><span style="color:#393A34;">arrs</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [[a b] [c d]]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="FlattenDeep" tabindex="-1"><span id="FlattenDeep">FlattenDeep</span> <a class="header-anchor" href="#FlattenDeep" aria-label="Permalink to "<span id="FlattenDeep">FlattenDeep</span>""></a></h3><p>flattens slice recursive.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">FlattenDeep</span><span style="color:#F6F6F4;">(slice any) any</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">FlattenDeep</span><span style="color:#999999;">(</span><span style="color:#393A34;">slice any</span><span style="color:#999999;">)</span><span style="color:#393A34;"> any</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/yjYNHPyCFaF" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> arrs </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> [][][]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{{{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}}, {{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">d</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}}}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">FlattenDeep</span><span style="color:#F6F6F4;">(arrs)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c d]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">arrs</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[][][]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{{{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}},</span><span style="color:#393A34;"> </span><span style="color:#999999;">{{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">d</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}}}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">FlattenDeep</span><span style="color:#999999;">(</span><span style="color:#393A34;">arrs</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c d]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="ForEach" tabindex="-1"><span id="ForEach">ForEach</span> <a class="header-anchor" href="#ForEach" aria-label="Permalink to "<span id="ForEach">ForEach</span>""></a></h3><p>Iterates over elements of slice and invokes function for each element.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> ForEach[T any](slice []T, iteratee </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T))</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> ForEach</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> iteratee </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">))</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/DrPaa4YsHRF" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">var</span><span style="color:#F6F6F4;"> result []</span><span style="color:#97E1F1;font-style:italic;">int</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> addOne </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(_ </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, v </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">=</span><span style="color:#F6F6F4;"> </span><span style="color:#97E1F1;">append</span><span style="color:#F6F6F4;">(result, v</span><span style="color:#F286C4;">+</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ForEach</span><span style="color:#F6F6F4;">(nums, addOne)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [2 3 4]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">var</span><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">addOne</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">_ </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> v </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">=</span><span style="color:#393A34;"> </span><span style="color:#998418;">append</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">,</span><span style="color:#393A34;"> v</span><span style="color:#AB5959;">+</span><span style="color:#2F798A;">1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ForEach</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> addOne</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [2 3 4]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="ForEachWithBreak" tabindex="-1"><span id="ForEachWithBreak">ForEachWithBreak</span> <a class="header-anchor" href="#ForEachWithBreak" aria-label="Permalink to "<span id="ForEachWithBreak">ForEachWithBreak</span>""></a></h3><p>Iterates over elements of slice and invokes function for each element, when iteratee return false, will break the for each loop.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> ForEachWithBreak[T any](slice []T, iteratee </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">)</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> ForEachWithBreak</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> iteratee </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/qScs39f3D9W" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> numbers </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">var</span><span style="color:#F6F6F4;"> sum </span><span style="color:#97E1F1;font-style:italic;">int</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ForEachWithBreak</span><span style="color:#F6F6F4;">(numbers, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(_, n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">if</span><span style="color:#F6F6F4;"> n </span><span style="color:#F286C4;">></span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> sum </span><span style="color:#F286C4;">+=</span><span style="color:#F6F6F4;"> n</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(sum)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 6</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">numbers</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">var</span><span style="color:#393A34;"> </span><span style="color:#B07D48;">sum</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ForEachWithBreak</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">_</span><span style="color:#999999;">,</span><span style="color:#393A34;"> n </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">if</span><span style="color:#393A34;"> n </span><span style="color:#AB5959;">></span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">false</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> sum </span><span style="color:#999999;">+=</span><span style="color:#393A34;"> n</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">sum</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 6</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="GroupBy" tabindex="-1"><span id="GroupBy">GroupBy</span> <a class="header-anchor" href="#GroupBy" aria-label="Permalink to "<span id="GroupBy">GroupBy</span>""></a></h3><p>Iterates over elements of the slice, each element will be group by criteria, returns two slices.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> GroupBy[T any](slice []T, groupFn </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) ([]T, []T)</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> GroupBy</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> groupFn </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">([]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/QVkPxzPR0iA" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> isEven </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(i, num </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> num</span><span style="color:#F286C4;">%</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">0</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> even, odd </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">GroupBy</span><span style="color:#F6F6F4;">(nums, isEven)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(even)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(odd)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [2 4]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 3 5]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">isEven</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">i</span><span style="color:#999999;">,</span><span style="color:#393A34;"> num </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> num</span><span style="color:#AB5959;">%</span><span style="color:#2F798A;">2</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">even</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B07D48;">odd</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">GroupBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> isEven</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">even</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">odd</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [2 4]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 3 5]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="GroupWith" tabindex="-1"><span id="GroupWith">GroupWith</span> <a class="header-anchor" href="#GroupWith" aria-label="Permalink to "<span id="GroupWith">GroupWith</span>""></a></h3><p>Return a map composed of keys generated from the results of running each element of slice thru iteratee.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> GroupWith[T any, U comparable](slice []T, iteratee </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(T) U) </span><span style="color:#F286C4;">map</span><span style="color:#F6F6F4;">[U][]T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> GroupWith</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">,</span><span style="color:#393A34;"> U comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> iteratee </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> U</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">map</span><span style="color:#999999;">[</span><span style="color:#393A34;">U</span><span style="color:#999999;">][]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/ApCvMNTLO8a" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">float64</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">6.1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4.2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">6.3</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> floor </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(num </span><span style="color:#97E1F1;font-style:italic;">float64</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">float64</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> math.</span><span style="color:#97E1F1;">Floor</span><span style="color:#F6F6F4;">(num)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">GroupWith</span><span style="color:#F6F6F4;">(nums, floor) </span><span style="color:#7B7F8B;">//map[float64][]float64</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// map[4:[4.2] 6:[6.1 6.3]]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">float64</span><span style="color:#999999;">{</span><span style="color:#2F798A;">6.1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4.2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">6.3</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">floor</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">num </span><span style="color:#AB5959;">float64</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">float64</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> math</span><span style="color:#999999;">.</span><span style="color:#998418;">Floor</span><span style="color:#999999;">(</span><span style="color:#393A34;">num</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">GroupWith</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> floor</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">//map[float64][]float64</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// map[4:[4.2] 6:[6.1 6.3]]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="IntSlice-Deprecated-use-generic-feature-of-go1-18-for-replacement-" tabindex="-1"><span id="IntSlice">IntSlice (Deprecated: use generic feature of go1.18+ for replacement)</span> <a class="header-anchor" href="#IntSlice-Deprecated-use-generic-feature-of-go1-18-for-replacement-" aria-label="Permalink to "<span id="IntSlice">IntSlice (Deprecated: use generic feature of go1.18+ for replacement)</span>""></a></h3><p>Convert interface slice to int slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">IntSlice</span><span style="color:#F6F6F4;">(slice any) []</span><span style="color:#97E1F1;font-style:italic;">int</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">IntSlice</span><span style="color:#999999;">(</span><span style="color:#393A34;">slice any</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/UQDj-on9TGN" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#F286C4;">interface</span><span style="color:#F6F6F4;">{}{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IntSlice</span><span style="color:#F6F6F4;">(nums) </span><span style="color:#7B7F8B;">//[]int{1, 2, 3}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 2 3]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#1E754F;">interface</span><span style="color:#999999;">{}{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IntSlice</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">//[]int{1, 2, 3}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 3]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="InterfaceSlice-Deprecated-use-generic-feature-of-go1-18-for-replacement-" tabindex="-1"><span id="InterfaceSlice">InterfaceSlice (Deprecated: use generic feature of go1.18+ for replacement)</span> <a class="header-anchor" href="#InterfaceSlice-Deprecated-use-generic-feature-of-go1-18-for-replacement-" aria-label="Permalink to "<span id="InterfaceSlice">InterfaceSlice (Deprecated: use generic feature of go1.18+ for replacement)</span>""></a></h3><p>Convert value to interface slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">InterfaceSlice</span><span style="color:#F6F6F4;">(slice any) []any</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">InterfaceSlice</span><span style="color:#999999;">(</span><span style="color:#393A34;">slice any</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">any</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/FdQXF0Vvqs-" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> strs </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">InterfaceSlice</span><span style="color:#F6F6F4;">(strs) </span><span style="color:#7B7F8B;">//[]interface{}{"a", "b", "c"}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">strs</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">InterfaceSlice</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">//[]interface{}{"a", "b", "c"}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Intersection" tabindex="-1"><span id="Intersection">Intersection</span> <a class="header-anchor" href="#Intersection" aria-label="Permalink to "<span id="Intersection">Intersection</span>""></a></h3><p>Creates a slice of unique values that included by all slices.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Intersection[T comparable](slices </span><span style="color:#F286C4;">...</span><span style="color:#F6F6F4;">[]T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Intersection</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slices </span><span style="color:#AB5959;">...</span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/anJXfB5wq_t" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Intersection</span><span style="color:#F6F6F4;">(nums1, nums2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [2 3]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Intersection</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> nums2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [2 3]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="InsertAt" tabindex="-1"><span id="InsertAt">InsertAt</span> <a class="header-anchor" href="#InsertAt" aria-label="Permalink to "<span id="InsertAt">InsertAt</span>""></a></h3><p>insert the element into slice at index.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> InsertAt[T any](slice []T, index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, value any) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> InsertAt</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> value any</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/hMLNxPEGJVE" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">InsertAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">1</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">InsertAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">1</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">InsertAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">1</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result4 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">InsertAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">1</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result5 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">InsertAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;">, []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">1</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">2</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">3</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result4)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result5)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a 1 b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b 1 c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c 1]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 2 3 a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">InsertAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">1</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">InsertAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">1</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">InsertAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">1</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result4</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">InsertAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">1</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result5</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">InsertAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">1</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">2</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">3</span><span style="color:#B5695999;">"</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result4</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result5</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 a b c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a 1 b c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b 1 c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c 1]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 3 a b c]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="IndexOf" tabindex="-1"><span id="IndexOf">IndexOf</span> <a class="header-anchor" href="#IndexOf" aria-label="Permalink to "<span id="IndexOf">IndexOf</span>""></a></h3><p>Returns the index at which the first occurrence of a item is found in a slice or return -1 if the item cannot be found.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> IndexOf[T comparable](slice []T, item T) </span><span style="color:#97E1F1;font-style:italic;">int</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> IndexOf</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/MRN1f0FpABb" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> strs </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IndexOf</span><span style="color:#F6F6F4;">(strs, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IndexOf</span><span style="color:#F6F6F4;">(strs, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">d</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 0</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// -1</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">strs</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IndexOf</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IndexOf</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">d</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// -1</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="LastIndexOf" tabindex="-1"><span id="LastIndexOf">LastIndexOf</span> <a class="header-anchor" href="#LastIndexOf" aria-label="Permalink to "<span id="LastIndexOf">LastIndexOf</span>""></a></h3><p>Returns the index at which the last occurrence of a item is found in a slice or return -1 if the item cannot be found.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> LastIndexOf[T comparable](slice []T, item T) </span><span style="color:#97E1F1;font-style:italic;">int</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> LastIndexOf</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/DokM4cf1IKH" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> strs </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">LastIndexOf</span><span style="color:#F6F6F4;">(strs, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">LastIndexOf</span><span style="color:#F6F6F4;">(strs, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">d</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 1</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// -1</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">strs</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">LastIndexOf</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">LastIndexOf</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">d</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 1</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// -1</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Map" tabindex="-1"><span id="Map">Map</span> <a class="header-anchor" href="#Map" aria-label="Permalink to "<span id="Map">Map</span>""></a></h3><p>Creates an slice of values by running each element in slice thru function.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Map[T any, U any](slice []T, iteratee </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) U) []U</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Map</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">,</span><span style="color:#393A34;"> U any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> iteratee </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> U</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">U</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/biaTefqPquw" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> addOne </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(_ </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, v </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> v </span><span style="color:#F286C4;">+</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">1</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Map</span><span style="color:#F6F6F4;">(nums, addOne)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [2 3 4]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">addOne</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">_ </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> v </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> v </span><span style="color:#AB5959;">+</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Map</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> addOne</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [2 3 4]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="FilterMap" tabindex="-1"><span id="FilterMap">FilterMap</span> <a class="header-anchor" href="#FilterMap" aria-label="Permalink to "<span id="FilterMap">FilterMap</span>""></a></h3><p>Returns a slice which apply both filtering and mapping to the given slice. iteratee callback function should returntwo values: 1, mapping result. 2, whether the result element should be included or not.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> FilterMap[T any, U any](slice []T, iteratee </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) (U, </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">)) []U</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> FilterMap</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">,</span><span style="color:#393A34;"> U any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> iteratee </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">U</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">))</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">U</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/J94SZ_9MiIe" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> getEvenNumStr </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(i, num </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) (</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">, </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">if</span><span style="color:#F6F6F4;"> num</span><span style="color:#F286C4;">%</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> strconv.</span><span style="color:#97E1F1;">FormatInt</span><span style="color:#F6F6F4;">(</span><span style="color:#97E1F1;">int64</span><span style="color:#F6F6F4;">(num), </span><span style="color:#BF9EEE;">10</span><span style="color:#F6F6F4;">), </span><span style="color:#BF9EEE;">true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">""</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">FilterMap</span><span style="color:#F6F6F4;">(nums, getEvenNumStr)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Printf</span><span style="color:#F6F6F4;">(</span><span style="color:#DEE492;">"</span><span style="color:#BF9EEE;">%#v</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// []string{"2", "4"}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">getEvenNumStr</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">i</span><span style="color:#999999;">,</span><span style="color:#393A34;"> num </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span><span style="color:#AB5959;">string</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">if</span><span style="color:#393A34;"> num</span><span style="color:#AB5959;">%</span><span style="color:#2F798A;">2</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> strconv</span><span style="color:#999999;">.</span><span style="color:#998418;">FormatInt</span><span style="color:#999999;">(</span><span style="color:#998418;">int64</span><span style="color:#999999;">(</span><span style="color:#393A34;">num</span><span style="color:#999999;">),</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">10</span><span style="color:#999999;">),</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">""</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">false</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">FilterMap</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> getEvenNumStr</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Printf</span><span style="color:#999999;">(</span><span style="color:#B5695999;">"</span><span style="color:#A65E2B;">%#v</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// []string{"2", "4"}</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="FlatMap" tabindex="-1"><span id="FlatMap">FlatMap</span> <a class="header-anchor" href="#FlatMap" aria-label="Permalink to "<span id="FlatMap">FlatMap</span>""></a></h3><p>Manipulates a slice and transforms and flattens it to a slice of another type.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> FlatMap[T any, U any](slice []T, iteratee </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) []U) []U</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> FlatMap</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">,</span><span style="color:#393A34;"> U any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> iteratee </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">U</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">U</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/_QARWlWs1N_F" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">FlatMap</span><span style="color:#F6F6F4;">(nums, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(i </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, num </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">hi-</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">+</span><span style="color:#F6F6F4;"> strconv.</span><span style="color:#97E1F1;">FormatInt</span><span style="color:#F6F6F4;">(</span><span style="color:#97E1F1;">int64</span><span style="color:#F6F6F4;">(num), </span><span style="color:#BF9EEE;">10</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{s}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Printf</span><span style="color:#F6F6F4;">(</span><span style="color:#DEE492;">"</span><span style="color:#BF9EEE;">%#v</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// []string{"hi-1", "hi-2", "hi-3", "hi-4"}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">FlatMap</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">i </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> num </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">hi-</span><span style="color:#B5695999;">"</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">+</span><span style="color:#393A34;"> strconv</span><span style="color:#999999;">.</span><span style="color:#998418;">FormatInt</span><span style="color:#999999;">(</span><span style="color:#998418;">int64</span><span style="color:#999999;">(</span><span style="color:#393A34;">num</span><span style="color:#999999;">),</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">10</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#393A34;">s</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Printf</span><span style="color:#999999;">(</span><span style="color:#B5695999;">"</span><span style="color:#A65E2B;">%#v</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// []string{"hi-1", "hi-2", "hi-3", "hi-4"}</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Merge" tabindex="-1"><span id="Merge">Merge</span> <a class="header-anchor" href="#Merge" aria-label="Permalink to "<span id="Merge">Merge</span>""></a></h3><p>Merge all given slices into one slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Merge[T any](slices </span><span style="color:#F286C4;">...</span><span style="color:#F6F6F4;">[]T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Merge</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slices </span><span style="color:#AB5959;">...</span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/lbjFp784r9N" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Merge</span><span style="color:#F6F6F4;">(nums1, nums2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 2 3 3 4]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Merge</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> nums2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 3 3 4]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Reverse" tabindex="-1"><span id="Reverse">Reverse</span> <a class="header-anchor" href="#Reverse" aria-label="Permalink to "<span id="Reverse">Reverse</span>""></a></h3><p>Reverse the elements order in slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Reverse[T any](slice []T)</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Reverse</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/8uI8f1lwNrQ" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> strs </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">d</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Reverse</span><span style="color:#F6F6F4;">(strs)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(strs)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [d c b a]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">strs</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">d</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Reverse</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [d c b a]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Reduce" tabindex="-1"><span id="Reduce">Reduce</span> <a class="header-anchor" href="#Reduce" aria-label="Permalink to "<span id="Reduce">Reduce</span>""></a></h3><p>Reduce slice.(Deprecated: use ReduceBy)</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Reduce[T any](slice []T, iteratee </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item1, item2 T) T, initial T) T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Reduce</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> iteratee </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item2 T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> initial T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/_RfXJJWIsIm" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> sum </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(_ </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, v1, v2 </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> v1 </span><span style="color:#F286C4;">+</span><span style="color:#F6F6F4;"> v2</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Reduce</span><span style="color:#F6F6F4;">(nums, sum, </span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 6</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">sum</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">_ </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> v1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> v2 </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> v1 </span><span style="color:#AB5959;">+</span><span style="color:#393A34;"> v2</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Reduce</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> sum</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 6</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="ReduceBy" tabindex="-1"><span id="ReduceBy">ReduceBy</span> <a class="header-anchor" href="#ReduceBy" aria-label="Permalink to "<span id="ReduceBy">ReduceBy</span>""></a></h3><p>Produces a value from slice by accumulating the result of each element as passed through the reducer function.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> ReduceBy[T any, U any](slice []T, initial U, reducer </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T, agg U) U) U</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> ReduceBy</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">,</span><span style="color:#393A34;"> U any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> initial U</span><span style="color:#999999;">,</span><span style="color:#393A34;"> reducer </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> agg U</span><span style="color:#999999;">)</span><span style="color:#393A34;"> U</span><span style="color:#999999;">)</span><span style="color:#393A34;"> U</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/YKDpLi7gtee" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ReduceBy</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;">, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(_ </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, agg </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> agg </span><span style="color:#F286C4;">+</span><span style="color:#F6F6F4;"> item</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ReduceBy</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">}, </span><span style="color:#DEE492;">""</span><span style="color:#F6F6F4;">, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(_ </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, agg </span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> agg </span><span style="color:#F286C4;">+</span><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Sprintf</span><span style="color:#F6F6F4;">(</span><span style="color:#DEE492;">"</span><span style="color:#BF9EEE;">%v</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, item)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 10</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 1234</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ReduceBy</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">_ </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> agg </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> agg </span><span style="color:#AB5959;">+</span><span style="color:#393A34;"> item</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ReduceBy</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">""</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">_ </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> agg </span><span style="color:#AB5959;">string</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">string</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> agg </span><span style="color:#AB5959;">+</span><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Sprintf</span><span style="color:#999999;">(</span><span style="color:#B5695999;">"</span><span style="color:#A65E2B;">%v</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 10</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 1234</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="ReduceRight" tabindex="-1"><span id="ReduceRight">ReduceRight</span> <a class="header-anchor" href="#ReduceRight" aria-label="Permalink to "<span id="ReduceRight">ReduceRight</span>""></a></h3><p>ReduceRight is like ReduceBy, but it iterates over elements of slice from right to left.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> ReduceRight[T any, U any](slice []T, initial U, reducer </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T, agg U) U) U</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> ReduceRight</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">,</span><span style="color:#393A34;"> U any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> initial U</span><span style="color:#999999;">,</span><span style="color:#393A34;"> reducer </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> agg U</span><span style="color:#999999;">)</span><span style="color:#393A34;"> U</span><span style="color:#999999;">)</span><span style="color:#393A34;"> U</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/qT9dZC03A1K" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ReduceRight</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">}, </span><span style="color:#DEE492;">""</span><span style="color:#F6F6F4;">, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(_ </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, agg </span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> agg </span><span style="color:#F286C4;">+</span><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Sprintf</span><span style="color:#F6F6F4;">(</span><span style="color:#DEE492;">"</span><span style="color:#BF9EEE;">%v</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, item)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 4321</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ReduceRight</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">""</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">_ </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> agg </span><span style="color:#AB5959;">string</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">string</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> agg </span><span style="color:#AB5959;">+</span><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Sprintf</span><span style="color:#999999;">(</span><span style="color:#B5695999;">"</span><span style="color:#A65E2B;">%v</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 4321</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Replace" tabindex="-1"><span id="Replace">Replace</span> <a class="header-anchor" href="#Replace" aria-label="Permalink to "<span id="Replace">Replace</span>""></a></h3><p>Returns a copy of the slice with the first n non-overlapping instances of old replaced by new.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Replace[T comparable](slice []T, old T, new T, n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Replace</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> old T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> new T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> n </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/P5mZp7IhOFo" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> strs </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Replace</span><span style="color:#F6F6F4;">(strs, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">x</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Replace</span><span style="color:#F6F6F4;">(strs, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">x</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Replace</span><span style="color:#F6F6F4;">(strs, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">x</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result4 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Replace</span><span style="color:#F6F6F4;">(strs, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">x</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result5 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Replace</span><span style="color:#F6F6F4;">(strs, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">x</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#F286C4;">-</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result4)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result5)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c a]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [x b c a]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [x b c x]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [x b c x]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [x b c x]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">strs</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Replace</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">x</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Replace</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">x</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Replace</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">x</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result4</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Replace</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">x</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result5</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Replace</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">x</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">-</span><span style="color:#2F798A;">1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result4</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result5</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c a]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [x b c a]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [x b c x]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [x b c x]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [x b c x]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="ReplaceAll" tabindex="-1"><span id="ReplaceAll">ReplaceAll</span> <a class="header-anchor" href="#ReplaceAll" aria-label="Permalink to "<span id="ReplaceAll">ReplaceAll</span>""></a></h3><p>Returns a copy of the slice with the first n non-overlapping instances of old replaced by new.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> ReplaceAll[T comparable](slice []T, old T, new T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> ReplaceAll</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> old T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> new T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/CzqXMsuYUrx" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ReplaceAll</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">x</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [x b c x]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ReplaceAll</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">x</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [x b c x]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Repeat" tabindex="-1"><span id="Repeat">Repeat</span> <a class="header-anchor" href="#Repeat" aria-label="Permalink to "<span id="Repeat">Repeat</span>""></a></h3><p>Creates a slice with length n whose elements are passed param item.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Repeat[T any](item T, n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Repeat</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">item T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> n </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/1CbOmtgILUU" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Repeat</span><span style="color:#F6F6F4;">(</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a a a]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Repeat</span><span style="color:#999999;">(</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a a a]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Shuffle" tabindex="-1"><span id="Shuffle">Shuffle</span> <a class="header-anchor" href="#Shuffle" aria-label="Permalink to "<span id="Shuffle">Shuffle</span>""></a></h3><p>Creates an slice of shuffled values.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Shuffle[T any](slice []T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Shuffle</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/YHvhnWGU3Ge" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Shuffle</span><span style="color:#F6F6F4;">(nums)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(res)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [3 1 5 4 2] (random order)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Shuffle</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">res</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [3 1 5 4 2] (random order)</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="IsAscending" tabindex="-1"><span id="IsAscending">IsAscending</span> <a class="header-anchor" href="#IsAscending" aria-label="Permalink to "<span id="IsAscending">IsAscending</span>""></a></h3><p>Checks if a slice is ascending order.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> IsAscending[T constraints.Ordered](slice []T) </span><span style="color:#97E1F1;font-style:italic;">bool</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> IsAscending</span><span style="color:#999999;">[</span><span style="color:#393A34;">T constraints</span><span style="color:#999999;">.</span><span style="color:#393A34;">Ordered</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/9CtsFjet4SH" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IsAscending</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IsAscending</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IsAscending</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IsAscending</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IsAscending</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">5</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IsAscending</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// false</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// false</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="IsDescending" tabindex="-1"><span id="IsDescending">IsDescending</span> <a class="header-anchor" href="#IsDescending" aria-label="Permalink to "<span id="IsDescending">IsDescending</span>""></a></h3><p>Checks if a slice is descending order.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> IsDescending[T constraints.Ordered](slice []T) </span><span style="color:#97E1F1;font-style:italic;">bool</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> IsDescending</span><span style="color:#999999;">[</span><span style="color:#393A34;">T constraints</span><span style="color:#999999;">.</span><span style="color:#393A34;">Ordered</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/U_LljFXma14" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IsDescending</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IsDescending</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IsDescending</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IsDescending</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">5</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IsDescending</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IsDescending</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// false</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// false</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="IsSorted" tabindex="-1"><span id="IsSorted">IsSorted</span> <a class="header-anchor" href="#IsSorted" aria-label="Permalink to "<span id="IsSorted">IsSorted</span>""></a></h3><p>Checks if a slice is sorted (ascending or descending).</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> IsSorted[T constraints.Ordered](slice []T) </span><span style="color:#97E1F1;font-style:italic;">bool</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> IsSorted</span><span style="color:#999999;">[</span><span style="color:#393A34;">T constraints</span><span style="color:#999999;">.</span><span style="color:#393A34;">Ordered</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/nCE8wPLwSA-" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IsSorted</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IsSorted</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IsSorted</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IsSorted</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">5</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IsSorted</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IsSorted</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// false</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="IsSortedByKey" tabindex="-1"><span id="IsSortedByKey">IsSortedByKey</span> <a class="header-anchor" href="#IsSortedByKey" aria-label="Permalink to "<span id="IsSortedByKey">IsSortedByKey</span>""></a></h3><p>Checks if a slice is sorted by iteratee function.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> IsSortedByKey[T any, K constraints.Ordered](slice []T, iteratee </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item T) K) </span><span style="color:#97E1F1;font-style:italic;">bool</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> IsSortedByKey</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">,</span><span style="color:#393A34;"> K constraints</span><span style="color:#999999;">.</span><span style="color:#393A34;">Ordered</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> iteratee </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> K</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/tUoGB7DOHI4" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IsSortedByKey</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">ab</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">abc</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(s </span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> </span><span style="color:#97E1F1;">len</span><span style="color:#F6F6F4;">(s)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IsSortedByKey</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">abc</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">ab</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(s </span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> </span><span style="color:#97E1F1;">len</span><span style="color:#F6F6F4;">(s)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">IsSortedByKey</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">abc</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">ab</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(s </span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> </span><span style="color:#97E1F1;">len</span><span style="color:#F6F6F4;">(s)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// false</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IsSortedByKey</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">ab</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">abc</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">s </span><span style="color:#AB5959;">string</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> </span><span style="color:#998418;">len</span><span style="color:#999999;">(</span><span style="color:#393A34;">s</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IsSortedByKey</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">abc</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">ab</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">s </span><span style="color:#AB5959;">string</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> </span><span style="color:#998418;">len</span><span style="color:#999999;">(</span><span style="color:#393A34;">s</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">IsSortedByKey</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">abc</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">ab</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">s </span><span style="color:#AB5959;">string</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> </span><span style="color:#998418;">len</span><span style="color:#999999;">(</span><span style="color:#393A34;">s</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// false</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Sort" tabindex="-1"><span id="Sort">Sort</span> <a class="header-anchor" href="#Sort" aria-label="Permalink to "<span id="Sort">Sort</span>""></a></h3><p>Sorts a slice of any ordered type(number or string), use quick sort algrithm. Default sort order is ascending (asc), if want descending order, set param \`sortOrder\` to \`desc\`. Ordered type: number(all ints uints floats) or string.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Sort[T constraints.Ordered](slice []T, sortOrder </span><span style="color:#F286C4;">...</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">)</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Sort</span><span style="color:#999999;">[</span><span style="color:#393A34;">T constraints</span><span style="color:#999999;">.</span><span style="color:#393A34;">Ordered</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> sortOrder </span><span style="color:#AB5959;">...</span><span style="color:#AB5959;">string</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/V9AVjzf_4Fk" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> numbers </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Sort</span><span style="color:#F6F6F4;">(numbers)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(numbers) </span><span style="color:#7B7F8B;">// [1 2 3 4 5]</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Sort</span><span style="color:#F6F6F4;">(numbers, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">desc</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(numbers) </span><span style="color:#7B7F8B;">// [5 4 3 2 1]</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> strings </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">d</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">e</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Sort</span><span style="color:#F6F6F4;">(strings)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(strings) </span><span style="color:#7B7F8B;">//[a b c d e}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Sort</span><span style="color:#F6F6F4;">(strings, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">desc</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(strings) </span><span style="color:#7B7F8B;">//[e d c b a]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">numbers</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Sort</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 3 4 5]</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Sort</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">desc</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [5 4 3 2 1]</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">strings</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">d</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">e</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Sort</span><span style="color:#999999;">(</span><span style="color:#393A34;">strings</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">strings</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">//[a b c d e}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Sort</span><span style="color:#999999;">(</span><span style="color:#393A34;">strings</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">desc</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">strings</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">//[e d c b a]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="SortBy" tabindex="-1"><span id="SortBy">SortBy</span> <a class="header-anchor" href="#SortBy" aria-label="Permalink to "<span id="SortBy">SortBy</span>""></a></h3><p>Sorts the slice in ascending order as determined by the less function. This sort is not guaranteed to be stable.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> SortBy[T any](slice []T, less </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(a, b T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">)</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> SortBy</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> less </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">a</span><span style="color:#999999;">,</span><span style="color:#393A34;"> b T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/DAhLQSZEumm" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> numbers </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">SortBy</span><span style="color:#F6F6F4;">(numbers, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(a, b </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> a </span><span style="color:#F286C4;"><</span><span style="color:#F6F6F4;"> b</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(numbers) </span><span style="color:#7B7F8B;">// [1 2 3 4 5]</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">type</span><span style="color:#F6F6F4;"> </span><span style="color:#97E1F1;font-style:italic;">User</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">struct</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> Name </span><span style="color:#97E1F1;font-style:italic;">string</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> Age </span><span style="color:#97E1F1;font-style:italic;">uint</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> users </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []User{</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> {Name: </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, Age: </span><span style="color:#BF9EEE;">21</span><span style="color:#F6F6F4;">},</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> {Name: </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, Age: </span><span style="color:#BF9EEE;">15</span><span style="color:#F6F6F4;">},</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> {Name: </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, Age: </span><span style="color:#BF9EEE;">100</span><span style="color:#F6F6F4;">}}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">SortBy</span><span style="color:#F6F6F4;">(users, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(a, b User) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> a.Age </span><span style="color:#F286C4;"><</span><span style="color:#F6F6F4;"> b.Age</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Printf</span><span style="color:#F6F6F4;">(</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">sort users by age: </span><span style="color:#BF9EEE;">%v</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, users)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// output</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [{b 15} {a 21} {c 100}]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">numbers</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">SortBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">a</span><span style="color:#999999;">,</span><span style="color:#393A34;"> b </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> a </span><span style="color:#AB5959;"><</span><span style="color:#393A34;"> b</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">numbers</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 3 4 5]</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">type</span><span style="color:#393A34;"> </span><span style="color:#2E8F82;">User</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">struct</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> Name </span><span style="color:#AB5959;">string</span></span>
|
||
<span class="line"><span style="color:#393A34;"> Age </span><span style="color:#AB5959;">uint</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">users</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">User</span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">{</span><span style="color:#393A34;">Name</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> Age</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">21</span><span style="color:#999999;">},</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">{</span><span style="color:#393A34;">Name</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> Age</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">15</span><span style="color:#999999;">},</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">{</span><span style="color:#393A34;">Name</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> Age</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">100</span><span style="color:#999999;">}}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">SortBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">users</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">a</span><span style="color:#999999;">,</span><span style="color:#393A34;"> b User</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> a</span><span style="color:#999999;">.</span><span style="color:#393A34;">Age </span><span style="color:#AB5959;"><</span><span style="color:#393A34;"> b</span><span style="color:#999999;">.</span><span style="color:#393A34;">Age</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Printf</span><span style="color:#999999;">(</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">sort users by age: </span><span style="color:#A65E2B;">%v</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> users</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// output</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [{b 15} {a 21} {c 100}]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="SortByField-Deprecated-use-Sort-and-SortBy-for-replacement-" tabindex="-1"><span id="SortByField">SortByField (Deprecated: use Sort and SortBy for replacement)</span> <a class="header-anchor" href="#SortByField-Deprecated-use-Sort-and-SortBy-for-replacement-" aria-label="Permalink to "<span id="SortByField">SortByField (Deprecated: use Sort and SortBy for replacement)</span>""></a></h3><p>Sort struct slice by field. Slice element should be struct, field type should be int, uint, string, or bool. Default sort type is ascending (asc), if descending order, set sortType to desc.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">SortByField</span><span style="color:#F6F6F4;">(slice any, field </span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">, sortType </span><span style="color:#F286C4;">...</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">error</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">SortByField</span><span style="color:#999999;">(</span><span style="color:#393A34;">slice any</span><span style="color:#999999;">,</span><span style="color:#393A34;"> field </span><span style="color:#AB5959;">string</span><span style="color:#999999;">,</span><span style="color:#393A34;"> sortType </span><span style="color:#AB5959;">...</span><span style="color:#AB5959;">string</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">error</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/fU1prOBP9p1" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">type</span><span style="color:#F6F6F4;"> </span><span style="color:#97E1F1;font-style:italic;">User</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">struct</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> Name </span><span style="color:#97E1F1;font-style:italic;">string</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> Age </span><span style="color:#97E1F1;font-style:italic;">uint</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> users </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []User{</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> {Name: </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, Age: </span><span style="color:#BF9EEE;">21</span><span style="color:#F6F6F4;">},</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> {Name: </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, Age: </span><span style="color:#BF9EEE;">15</span><span style="color:#F6F6F4;">},</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> {Name: </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, Age: </span><span style="color:#BF9EEE;">100</span><span style="color:#F6F6F4;">}}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> err </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">SortByField</span><span style="color:#F6F6F4;">(users, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">Age</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">desc</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">if</span><span style="color:#F6F6F4;"> err </span><span style="color:#F286C4;">!=</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">nil</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(users)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [{c 100} {a 21} {b 15}]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">type</span><span style="color:#393A34;"> </span><span style="color:#2E8F82;">User</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">struct</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> Name </span><span style="color:#AB5959;">string</span></span>
|
||
<span class="line"><span style="color:#393A34;"> Age </span><span style="color:#AB5959;">uint</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">users</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">User</span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">{</span><span style="color:#393A34;">Name</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> Age</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">21</span><span style="color:#999999;">},</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">{</span><span style="color:#393A34;">Name</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> Age</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">15</span><span style="color:#999999;">},</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">{</span><span style="color:#393A34;">Name</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> Age</span><span style="color:#999999;">:</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">100</span><span style="color:#999999;">}}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">err</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">SortByField</span><span style="color:#999999;">(</span><span style="color:#393A34;">users</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">Age</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">desc</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">if</span><span style="color:#393A34;"> err </span><span style="color:#AB5959;">!=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">nil</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">users</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [{c 100} {a 21} {b 15}]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Some" tabindex="-1"><span id="Some">Some</span> <a class="header-anchor" href="#Some" aria-label="Permalink to "<span id="Some">Some</span>""></a></h3><p>Return true if any of the values in the list pass the predicate function.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Some[T any](slice []T, predicate </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, item T) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Some</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> predicate </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/4pO9Xf9NDGS" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> isEven </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(i, num </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> num</span><span style="color:#F286C4;">%</span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">==</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">0</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Some</span><span style="color:#F6F6F4;">(nums, isEven)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">isEven</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">i</span><span style="color:#999999;">,</span><span style="color:#393A34;"> num </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">bool</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> num</span><span style="color:#AB5959;">%</span><span style="color:#2F798A;">2</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">==</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Some</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> isEven</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="StringSlice-Deprecated-use-generic-feature-of-go1-18-for-replacement-" tabindex="-1"><span id="StringSlice">StringSlice (Deprecated: use generic feature of go1.18+ for replacement)</span> <a class="header-anchor" href="#StringSlice-Deprecated-use-generic-feature-of-go1-18-for-replacement-" aria-label="Permalink to "<span id="StringSlice">StringSlice (Deprecated: use generic feature of go1.18+ for replacement)</span>""></a></h3><p>Convert interface slice to string slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">StringSlice</span><span style="color:#F6F6F4;">(slice any) []</span><span style="color:#97E1F1;font-style:italic;">string</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">StringSlice</span><span style="color:#999999;">(</span><span style="color:#393A34;">slice any</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">string</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/W0TZDWCPFcI" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> strs </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#F286C4;">interface</span><span style="color:#F6F6F4;">{}{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">StringSlice</span><span style="color:#F6F6F4;">(strs) </span><span style="color:#7B7F8B;">//[]string{"a", "b", "c"}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">strs</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#1E754F;">interface</span><span style="color:#999999;">{}{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">StringSlice</span><span style="color:#999999;">(</span><span style="color:#393A34;">strs</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">//[]string{"a", "b", "c"}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="SymmetricDifference" tabindex="-1"><span id="SymmetricDifference">SymmetricDifference</span> <a class="header-anchor" href="#SymmetricDifference" aria-label="Permalink to "<span id="SymmetricDifference">SymmetricDifference</span>""></a></h3><p>Create a slice whose element is in given slices, but not in both slices.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> SymmetricDifference[T comparable](slices </span><span style="color:#F286C4;">...</span><span style="color:#F6F6F4;">[]T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> SymmetricDifference</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slices </span><span style="color:#AB5959;">...</span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/1CbOmtgILUU" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">SymmetricDifference</span><span style="color:#F6F6F4;">(nums1, nums2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [3 4]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">SymmetricDifference</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> nums2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [3 4]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="ToSlice" tabindex="-1"><span id="ToSlice">ToSlice</span> <a class="header-anchor" href="#ToSlice" aria-label="Permalink to "<span id="ToSlice">ToSlice</span>""></a></h3><p>Creates a slice of give items.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> ToSlice[T any](items </span><span style="color:#F286C4;">...</span><span style="color:#F6F6F4;">T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> ToSlice</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">items </span><span style="color:#AB5959;">...</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/YzbzVq5kscN" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ToSlice</span><span style="color:#F6F6F4;">(</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</span><span style="color:#999999;">(</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="ToSlicePointer" tabindex="-1"><span id="ToSlicePointer">ToSlicePointer</span> <a class="header-anchor" href="#ToSlicePointer" aria-label="Permalink to "<span id="ToSlicePointer">ToSlicePointer</span>""></a></h3><p>Returns a pointer to the slices of a variable parameter transformation</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> ToSlicePointer[T any](items </span><span style="color:#F286C4;">...</span><span style="color:#F6F6F4;">T) []</span><span style="color:#F286C4;">*</span><span style="color:#F6F6F4;">T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> ToSlicePointer</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">items </span><span style="color:#AB5959;">...</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">*</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/gx4tr6_VXSF" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> str1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> str2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">ToSlicePointer</span><span style="color:#F6F6F4;">(str1, str2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> expect </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#F286C4;">*</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#F286C4;">&</span><span style="color:#F6F6F4;">str1, </span><span style="color:#F286C4;">&</span><span style="color:#F6F6F4;">str2}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> isEqual </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> reflect.</span><span style="color:#97E1F1;">DeepEqual</span><span style="color:#F6F6F4;">(result, expect)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(isEqual)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// true</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">str1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">str2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlicePointer</span><span style="color:#999999;">(</span><span style="color:#393A34;">str1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> str2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">expect</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">*</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#AB5959;">&</span><span style="color:#393A34;">str1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">&</span><span style="color:#393A34;">str2</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">isEqual</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> reflect</span><span style="color:#999999;">.</span><span style="color:#998418;">DeepEqual</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">,</span><span style="color:#393A34;"> expect</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">isEqual</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// true</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Unique" tabindex="-1"><span id="Unique">Unique</span> <a class="header-anchor" href="#Unique" aria-label="Permalink to "<span id="Unique">Unique</span>""></a></h3><p>Remove duplicate elements in slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Unique[T comparable](slice []T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Unique</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/AXw0R3ZTE6a" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Unique</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Unique</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="UniqueBy" tabindex="-1"><span id="UniqueBy">UniqueBy</span> <a class="header-anchor" href="#UniqueBy" aria-label="Permalink to "<span id="UniqueBy">UniqueBy</span>""></a></h3><p>Call iteratee func with every item of slice, then remove duplicated.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> UniqueBy[T comparable](slice []T, iteratee </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item T) T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> UniqueBy</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> iteratee </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/UR323iZLDpv" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">6</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">UniqueBy</span><span style="color:#F6F6F4;">(nums, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(val </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> val </span><span style="color:#F286C4;">%</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">3</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 2 0]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">6</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">UniqueBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">val </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> val </span><span style="color:#AB5959;">%</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 0]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Union" tabindex="-1"><span id="Union">Union</span> <a class="header-anchor" href="#Union" aria-label="Permalink to "<span id="Union">Union</span>""></a></h3><p>Creates a slice of unique values, in order, from all given slices. using == for equality comparisons.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Union[T comparable](slices </span><span style="color:#F286C4;">...</span><span style="color:#F6F6F4;">[]T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Union</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slices </span><span style="color:#AB5959;">...</span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/hfXV1iRIZOf" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">6</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">6</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Union</span><span style="color:#F6F6F4;">(nums1, nums2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 3 4 6 2 5]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">6</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">6</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Union</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> nums2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 3 4 6 2 5]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="UnionBy" tabindex="-1"><span id="UnionBy">UnionBy</span> <a class="header-anchor" href="#UnionBy" aria-label="Permalink to "<span id="UnionBy">UnionBy</span>""></a></h3><p>UnionBy is like Union, what's more it accepts iteratee which is invoked for each element of each slice.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> UnionBy[T any, V comparable](predicate </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item T) V, slices </span><span style="color:#F286C4;">...</span><span style="color:#F6F6F4;">[]T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> UnionBy</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">,</span><span style="color:#393A34;"> V comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">predicate </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> V</span><span style="color:#999999;">,</span><span style="color:#393A34;"> slices </span><span style="color:#AB5959;">...</span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/HGKHfxKQsFi" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> divideTwo </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> n </span><span style="color:#F286C4;">/</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">2</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">UnionBy</span><span style="color:#F6F6F4;">(divideTwo, nums)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 2 4]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">divideTwo</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">n </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> n </span><span style="color:#AB5959;">/</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">}</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">UnionBy</span><span style="color:#999999;">(</span><span style="color:#393A34;">divideTwo</span><span style="color:#999999;">,</span><span style="color:#393A34;"> nums</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 4]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="UpdateAt" tabindex="-1"><span id="UpdateAt">UpdateAt</span> <a class="header-anchor" href="#UpdateAt" aria-label="Permalink to "<span id="UpdateAt">UpdateAt</span>""></a></h3><p>Update the slice element at index. if param index < 0 or index <= len(slice), will return error. </p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> UpdateAt[T any](slice []T, index </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">, value T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> UpdateAt</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> index </span><span style="color:#AB5959;">int</span><span style="color:#999999;">,</span><span style="color:#393A34;"> value T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/f3mh2KloWVm" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">UpdateAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#F286C4;">-</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">1</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">UpdateAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">0</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">1</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">UpdateAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">1</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result4 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">UpdateAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">1</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result5 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">UpdateAt</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">b</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">c</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">1</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result3)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result4)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result5)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [1 b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a 1 c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b 1]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">UpdateAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">-</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">1</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">UpdateAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">1</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">UpdateAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">1</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result4</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">UpdateAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">1</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result5</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">UpdateAt</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">b</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">c</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">1</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result4</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result5</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [1 b c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a 1 c]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b 1]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [a b c]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Without" tabindex="-1"><span id="Without">Without</span> <a class="header-anchor" href="#Without" aria-label="Permalink to "<span id="Without">Without</span>""></a></h3><p>Creates a slice excluding all given items.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Without[T comparable](slice []T, items </span><span style="color:#F286C4;">...</span><span style="color:#F6F6F4;">T) []T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Without</span><span style="color:#999999;">[</span><span style="color:#393A34;">T comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> items </span><span style="color:#AB5959;">...</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/bwhEXEypThg" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Without</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">}, </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [3 4]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Without</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [3 4]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="KeyBy" tabindex="-1"><span id="KeyBy">KeyBy</span> <a class="header-anchor" href="#KeyBy" aria-label="Permalink to "<span id="KeyBy">KeyBy</span>""></a></h3><p>Converts a slice to a map based on a callback function.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> KeyBy[T any, U comparable](slice []T, iteratee </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item T) U) </span><span style="color:#F286C4;">map</span><span style="color:#F6F6F4;">[U]T</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> KeyBy</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">,</span><span style="color:#393A34;"> U comparable</span><span style="color:#999999;">](</span><span style="color:#393A34;">slice </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> iteratee </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">item T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> U</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">map</span><span style="color:#999999;">[</span><span style="color:#393A34;">U</span><span style="color:#999999;">]</span><span style="color:#393A34;">T</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/uXod2LWD1Kg" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">KeyBy</span><span style="color:#F6F6F4;">([]</span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">{</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">a</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">ab</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">abc</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">}, </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(str </span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> </span><span style="color:#97E1F1;">len</span><span style="color:#F6F6F4;">(str)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> })</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// map[1:a 2:ab 3:abc]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">KeyBy</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">string</span><span style="color:#999999;">{</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">a</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">ab</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">abc</span><span style="color:#B5695999;">"</span><span style="color:#999999;">},</span><span style="color:#393A34;"> </span><span style="color:#1E754F;">func</span><span style="color:#999999;">(</span><span style="color:#393A34;">str </span><span style="color:#AB5959;">string</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">return</span><span style="color:#393A34;"> </span><span style="color:#998418;">len</span><span style="color:#999999;">(</span><span style="color:#393A34;">str</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#999999;">})</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// map[1:a 2:ab 3:abc]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Join" tabindex="-1"><span id="Join">Join</span> <a class="header-anchor" href="#Join" aria-label="Permalink to "<span id="Join">Join</span>""></a></h3><p>Join the slice item with specify separator.</p><p><b>Signature:</b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> Join[T any](s []T, separator </span><span style="color:#97E1F1;font-style:italic;">string</span><span style="color:#F6F6F4;">) </span><span style="color:#97E1F1;font-style:italic;">string</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> Join</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">s </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> separator </span><span style="color:#AB5959;">string</span><span style="color:#999999;">)</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">string</span></span></code></pre></div><p><b>Example:<span class="run-container"><a href="https://go.dev/play/p/huKzqwNDD7V" target="_blank" rel="noreferrer">Run</a></span></b></p><div class="language-go vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">go</span><pre class="shiki dracula-soft vp-code-dark"><code><span class="line"><span style="color:#F286C4;">import</span><span style="color:#F6F6F4;"> (</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">fmt</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">github.com/duke-git/lancet/v2/slice</span><span style="color:#DEE492;">"</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;"> </span><span style="color:#62E884;">main</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> nums </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> []</span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">{</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">2</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">3</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</span><span style="color:#F6F6F4;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Join</span><span style="color:#F6F6F4;">(nums, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">,</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> slice.</span><span style="color:#97E1F1;">Join</span><span style="color:#F6F6F4;">(nums, </span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">-</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(result2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// Output:</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 1,2,3,4,5</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// 1-2-3-4-5</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;">}</span></span></code></pre><pre class="shiki vitesse-light vp-code-light"><code><span class="line"><span style="color:#1E754F;">import</span><span style="color:#393A34;"> </span><span style="color:#999999;">(</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">fmt</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#59873A;">github.com/duke-git/lancet/v2/slice</span><span style="color:#B5695999;">"</span></span>
|
||
<span class="line"><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#1E754F;">func</span><span style="color:#393A34;"> </span><span style="color:#59873A;">main</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">nums</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#999999;">[]</span><span style="color:#AB5959;">int</span><span style="color:#999999;">{</span><span style="color:#2F798A;">1</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">2</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">3</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">5</span><span style="color:#999999;">}</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Join</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">,</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> slice</span><span style="color:#999999;">.</span><span style="color:#998418;">Join</span><span style="color:#999999;">(</span><span style="color:#393A34;">nums</span><span style="color:#999999;">,</span><span style="color:#393A34;"> </span><span style="color:#B5695999;">"</span><span style="color:#B56959;">-</span><span style="color:#B5695999;">"</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result1</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Println</span><span style="color:#999999;">(</span><span style="color:#393A34;">result2</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// Output:</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 1,2,3,4,5</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 1-2-3-4-5</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div>`,416),g=[t,c,r,y,F,i,u,E,A,d,B];function f(q,h,m,b,v,D){return p(),o("div",null,g)}const T=l(e,[["render",f]]);export{k as __pageData,T as default};
|