mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-17 03:02:28 +08:00
946 lines
233 KiB
JavaScript
946 lines
233 KiB
JavaScript
import{_ as l,o as p,c as o,k as s,a,X as n}from"./chunks/framework.6e839c56.js";const D=JSON.parse('{"title":"Stream","description":"","frontmatter":{},"headers":[],"relativePath":"api/packages/stream.md","filePath":"api/packages/stream.md"}'),e={name:"api/packages/stream.md"},t=s("h1",{id:"Stream",tabindex:"-1"},[a("Stream "),s("a",{class:"header-anchor",href:"#Stream","aria-label":'Permalink to "Stream"'},"")],-1),c=s("p",null,"Stream 流,该包仅验证简单 stream 实现,功能有限。",-1),r=s("div",{STYLE:"page-break-after: always;"},null,-1),y=s("h2",{id:"源码-",tabindex:"-1"},[a("源码: "),s("a",{class:"header-anchor",href:"#源码-","aria-label":'Permalink to "源码:"'},"")],-1),F=s("ul",null,[s("li",null,[s("a",{href:"https://github.com/duke-git/lancet/blob/main/stream/stream.go",target:"_blank",rel:"noreferrer"},"https://github.com/duke-git/lancet/blob/main/stream/stream.go")])],-1),i=s("div",{STYLE:"page-break-after: always;"},null,-1),A=n(`<h2 id="用法-" tabindex="-1">用法: <a class="header-anchor" href="#用法-" aria-label="Permalink to "用法:""></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/stream</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/stream</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),u=n('<h2 id="目录" tabindex="-1">目录 <a class="header-anchor" href="#目录" aria-label="Permalink to "目录""></a></h2><ul><li><a href="#Of">Of</a></li><li><a href="#FromSlice">FromSlice</a></li><li><a href="#FromChannel">FromChannel</a></li><li><a href="#FromRange">FromRange</a></li><li><a href="#Generate">Generate</a></li><li><a href="#Concat">Concat</a></li><li><a href="#Distinct">Distinct</a></li><li><a href="#Filter">Filter</a></li><li><a href="#Map">Map</a></li><li><a href="#Peek">Peek</a></li><li><a href="#Skip">Skip</a></li><li><a href="#Limit">Limit</a></li><li><a href="#Reverse">Reverse</a></li><li><a href="#Range">Range</a></li><li><a href="#Sorted">Sorted</a></li><li><a href="#ForEach">ForEach</a></li><li><a href="#Reduce">Reduce</a></li><li><a href="#FindFirst">FindFirst</a></li><li><a href="#FindLast">FindLast</a></li><li><a href="#Max">Max</a></li><li><a href="#Min">Min</a></li><li><a href="#AllMatch">AllMatch</a></li><li><a href="#AnyMatch">AnyMatch</a></li><li><a href="#NoneMatch">NoneMatch</a></li><li><a href="#Count">Count</a></li><li><a href="#ToSlice">ToSlice</a></li></ul>',2),d=s("div",{STYLE:"page-break-after: always;"},null,-1),m=n(`<h2 id="文档" tabindex="-1">文档 <a class="header-anchor" href="#文档" aria-label="Permalink to "文档""></a></h2><h3 id="Of" tabindex="-1"><span id="Of">Of</span> <a class="header-anchor" href="#Of" aria-label="Permalink to "<span id="Of">Of</span>""></a></h3><p>创建元素为指定值的stream。</p><p><b>函数签名:</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;"> Of[T any](elems </span><span style="color:#F286C4;">...</span><span style="color:#F6F6F4;">T) stream[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;"> Of</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">elems </span><span style="color:#AB5959;">...</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/jI6_iZZuVFE" target="_blank" rel="noreferrer">运行</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/stream</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;"> s </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">Of</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;"> data </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> s.</span><span style="color:#97E1F1;">ToSlice</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;">(data)</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/stream</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;">s</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">Of</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;">data</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> s</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">data</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="FromSlice" tabindex="-1"><span id="FromSlice">FromSlice</span> <a class="header-anchor" href="#FromSlice" aria-label="Permalink to "<span id="FromSlice">FromSlice</span>""></a></h3><p>从切片创建stream。</p><p><b>函数签名:</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;"> FromSlice[T any](source []T) stream[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;"> FromSlice</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">source </span><span style="color:#999999;">[]</span><span style="color:#393A34;">T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/wywTO0XZtI4" target="_blank" rel="noreferrer">运行</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/stream</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;"> s </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> data </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> s.</span><span style="color:#97E1F1;">ToSlice</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;">(data)</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/stream</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;">s</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">data</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> s</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">data</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="FromChannel" tabindex="-1"><span id="FromChannel">FromChannel</span> <a class="header-anchor" href="#FromChannel" aria-label="Permalink to "<span id="FromChannel">FromChannel</span>""></a></h3><p>从通道创建stream。</p><p><b>函数签名:</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;"> FromChannel[T any](source </span><span style="color:#F286C4;"><-chan</span><span style="color:#F6F6F4;"> T) stream[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;"> FromChannel</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">source </span><span style="color:#AB5959;"><-</span><span style="color:#1E754F;">chan</span><span style="color:#393A34;"> T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/9TZYugGMhXZ" target="_blank" rel="noreferrer">运行</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/stream</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;"> ch </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#97E1F1;">make</span><span style="color:#F6F6F4;">(</span><span style="color:#F286C4;">chan</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;">go</span><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">() {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">for</span><span style="color:#F6F6F4;"> i </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">; i </span><span style="color:#F286C4;"><</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">4</span><span style="color:#F6F6F4;">; i</span><span style="color:#F286C4;">++</span><span style="color:#F6F6F4;"> {</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> ch </span><span style="color:#F286C4;"><-</span><span style="color:#F6F6F4;"> i</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#97E1F1;">close</span><span style="color:#F6F6F4;">(ch)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }()</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> s </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromChannel</span><span style="color:#F6F6F4;">(ch)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> data </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> s.</span><span style="color:#97E1F1;">ToSlice</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;">(data)</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/stream</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;">ch</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#998418;">make</span><span style="color:#999999;">(</span><span style="color:#1E754F;">chan</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">go</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>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#1E754F;">for</span><span style="color:#393A34;"> </span><span style="color:#B07D48;">i</span><span style="color:#393A34;"> </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;"> i </span><span style="color:#AB5959;"><</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span><span style="color:#999999;">;</span><span style="color:#393A34;"> i</span><span style="color:#AB5959;">++</span><span style="color:#393A34;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> ch </span><span style="color:#AB5959;"><-</span><span style="color:#393A34;"> i</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:#998418;">close</span><span style="color:#999999;">(</span><span style="color:#393A34;">ch</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;">s</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromChannel</span><span style="color:#999999;">(</span><span style="color:#393A34;">ch</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">data</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> s</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">data</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="FromRange" tabindex="-1"><span id="FromRange">FromRange</span> <a class="header-anchor" href="#FromRange" aria-label="Permalink to "<span id="FromRange">FromRange</span>""></a></h3><p>指定一个范围创建stream, 范围两端点值都包括在内。</p><p><b>函数签名:</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;"> FromRange[T constraints.Integer </span><span style="color:#F286C4;">|</span><span style="color:#F6F6F4;"> constraints.Float](start, end, step T) stream[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;"> FromRange</span><span style="color:#999999;">[</span><span style="color:#393A34;">T constraints</span><span style="color:#999999;">.</span><span style="color:#393A34;">Integer </span><span style="color:#AB5959;">|</span><span style="color:#393A34;"> constraints</span><span style="color:#999999;">.</span><span style="color:#393A34;">Float</span><span style="color:#999999;">](</span><span style="color:#393A34;">start</span><span style="color:#999999;">,</span><span style="color:#393A34;"> end</span><span style="color:#999999;">,</span><span style="color:#393A34;"> step T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/9Ex1-zcg-B-" target="_blank" rel="noreferrer">运行</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/stream</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;"> s </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromRange</span><span style="color:#F6F6F4;">(</span><span style="color:#BF9EEE;">1</span><span style="color:#F6F6F4;">, </span><span style="color:#BF9EEE;">5</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;"> data </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> s.</span><span style="color:#97E1F1;">ToSlice</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;">(data)</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></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/stream</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;">s</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromRange</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;">5</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>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">data</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> s</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">data</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:#999999;">}</span></span></code></pre></div><h3 id="Generate" tabindex="-1"><span id="Generate">Generate</span> <a class="header-anchor" href="#Generate" aria-label="Permalink to "<span id="Generate">Generate</span>""></a></h3><p>创建一个stream,其中每个元素都由提供的生成器函数生成</p><p><b>函数签名:</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;"> Generate[T any](generator </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">() </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">() (item T, ok </span><span style="color:#97E1F1;font-style:italic;">bool</span><span style="color:#F6F6F4;">)) stream[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;"> Generate</span><span style="color:#999999;">[</span><span style="color:#393A34;">T any</span><span style="color:#999999;">](</span><span style="color:#393A34;">generator </span><span style="color:#1E754F;">func</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;">item 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 style="color:#393A34;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/rkOWL1yA3j9" target="_blank" rel="noreferrer">运行</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/stream</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;"> 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;"> max </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#BF9EEE;">4</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> generator </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:#F286C4;">func</span><span style="color:#F6F6F4;">() (</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:#F286C4;">func</span><span style="color:#F6F6F4;">() (</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;"> n</span><span style="color:#F286C4;">++</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#F286C4;">return</span><span style="color:#F6F6F4;"> n, n </span><span style="color:#F286C4;"><</span><span style="color:#F6F6F4;"> max</span></span>
|
||
<span class="line"><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;"> s </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">Generate</span><span style="color:#F6F6F4;">(generator)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> data </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> s.</span><span style="color:#97E1F1;">ToSlice</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;">(data)</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/stream</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;">n</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">max</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">4</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">generator</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:#1E754F;">func</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:#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;">return</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:#AB5959;">int</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;"> n</span><span style="color:#AB5959;">++</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:#999999;">,</span><span style="color:#393A34;"> n </span><span style="color:#AB5959;"><</span><span style="color:#393A34;"> max</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:#999999;">}</span></span>
|
||
<span class="line"></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;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">Generate</span><span style="color:#999999;">(</span><span style="color:#393A34;">generator</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">data</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> s</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">data</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="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>创建一个延迟连接stream,其元素是第一个stream的所有元素,后跟第二个stream的全部元素。</p><p><b>函数签名:</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](a, b stream[T]) stream[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;">a</span><span style="color:#999999;">,</span><span style="color:#393A34;"> b stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">])</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/HM4OlYk_OUC" target="_blank" rel="noreferrer">运行</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/stream</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;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> s </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> </span><span style="color:#97E1F1;">Concat</span><span style="color:#F6F6F4;">(s1, s2)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> data </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> s.</span><span style="color:#97E1F1;">ToSlice</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;">(data)</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 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/stream</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;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">s</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#998418;">Concat</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;"> </span><span style="color:#B07D48;">data</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> s</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">data</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 6]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Distinct" tabindex="-1"><span id="Distinct">Distinct</span> <a class="header-anchor" href="#Distinct" aria-label="Permalink to "<span id="Distinct">Distinct</span>""></a></h3><p>创建并返回一个stream,用于删除重复的项。 <b>支持链式操作</b></p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Distinct</span><span style="color:#F6F6F4;">() stream[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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Distinct</span><span style="color:#999999;">()</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/eGkOSrm64cB" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;">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;">3</span><span style="color:#F6F6F4;">})</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> distinct </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Distinct</span><span style="color:#F6F6F4;">()</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> data1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">ToSlice</span><span style="color:#F6F6F4;">()</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> data2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> distinct.</span><span style="color:#97E1F1;">ToSlice</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;">(data1)</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(data2)</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 2 3 3 3]</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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">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;">3</span><span style="color:#999999;">})</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">distinct</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Distinct</span><span style="color:#999999;">()</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">data1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</span><span style="color:#999999;">()</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">data2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> distinct</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">data1</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;">data2</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 2 3 3 3]</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="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>返回一个通过判定函数的stream <b>支持链式操作</b></p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Filter</span><span style="color:#F6F6F4;">(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;">) stream[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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Filter</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;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/MFlSANo-buc" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;">(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:#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 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Filter</span><span style="color:#F6F6F4;">(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 style="color:#97E1F1;">ToSlice</span><span style="color:#F6F6F4;">())</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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">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:#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:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Filter</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 style="color:#998418;">ToSlice</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="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>返回一个stream,该stream由将给定函数应用于源stream元素的元素组成。<b>支持链式操作</b></p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Map</span><span style="color:#F6F6F4;">(mapper </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item T) T) stream[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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Map</span><span style="color:#999999;">(</span><span style="color:#393A34;">mapper </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;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/OtNQUImdYko" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;">(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;">1</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> }</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> increament </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Map</span><span style="color:#F6F6F4;">(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;">(increament.</span><span style="color:#97E1F1;">ToSlice</span><span style="color:#F6F6F4;">())</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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">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;">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;">increament</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Map</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;">increament</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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="Peek" tabindex="-1"><span id="Peek">Peek</span> <a class="header-anchor" href="#Peek" aria-label="Permalink to "<span id="Peek">Peek</span>""></a></h3><p>返回一个由源stream的元素组成的stream,并在从生成的stream中消耗元素时对每个元素执行所提供的操作。 <b>支持链式操作</b></p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Peek</span><span style="color:#F6F6F4;">(consumer </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item T)) stream[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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Peek</span><span style="color:#999999;">(</span><span style="color:#393A34;">consumer </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;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/u1VNzHs6cb2" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> data </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>
|
||
<span class="line"><span style="color:#F6F6F4;"> peekStream </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Peek</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>
|
||
<span class="line"><span style="color:#F6F6F4;"> data </span><span style="color:#F286C4;">=</span><span style="color:#F6F6F4;"> </span><span style="color:#97E1F1;">append</span><span style="color:#F6F6F4;">(data, fmt.</span><span style="color:#97E1F1;">Sprint</span><span style="color:#F6F6F4;">(</span><span style="color:#DEE492;">"</span><span style="color:#E7EE98;">value</span><span style="color:#DEE492;">"</span><span style="color:#F6F6F4;">, n))</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;">(original.</span><span style="color:#97E1F1;">ToSlice</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;">(peekStream.</span><span style="color:#97E1F1;">ToSlice</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;">(data)</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 style="color:#7B7F8B;">// [1 2 3]</span></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> </span><span style="color:#7B7F8B;">// [value1 value2 value3]</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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">data</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>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">peekStream</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Peek</span><span style="color:#999999;">(</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:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">data</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;">data</span><span style="color:#999999;">,</span><span style="color:#393A34;"> fmt</span><span style="color:#999999;">.</span><span style="color:#998418;">Sprint</span><span style="color:#999999;">(</span><span style="color:#B5695999;">"</span><span style="color:#B56959;">value</span><span style="color:#B5695999;">"</span><span style="color:#999999;">,</span><span style="color:#393A34;"> n</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;">original</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">peekStream</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">data</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:#393A34;"> </span><span style="color:#A0ADA0;">// [1 2 3]</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// [value1 value2 value3]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Skip" tabindex="-1"><span id="Skip">Skip</span> <a class="header-anchor" href="#Skip" aria-label="Permalink to "<span id="Skip">Skip</span>""></a></h3><p>在丢弃stream的前n个元素后,返回由源stream的其余元素组成的stream。如果此stream包含的元素少于n个,则将返回一个空stream。<b>支持链式操作</b></p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Skip</span><span style="color:#F6F6F4;">(n </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) stream[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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Skip</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;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/fNdHbqjahum" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> s1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Skip</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;"> s2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Skip</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;"> s3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Skip</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;"> s4 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Skip</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;">(s1.</span><span style="color:#97E1F1;">ToSlice</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;">(s2.</span><span style="color:#97E1F1;">ToSlice</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;">(s3.</span><span style="color:#97E1F1;">ToSlice</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;">(s4.</span><span style="color:#97E1F1;">ToSlice</span><span style="color:#F6F6F4;">())</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;">// [1 2 3 4]</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 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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">s1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Skip</span><span style="color:#999999;">(</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;">s2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Skip</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;">s3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Skip</span><span style="color:#999999;">(</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;">s4</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Skip</span><span style="color:#999999;">(</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;">s1</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">s2</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">s3</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">s4</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">// [1 2 3 4]</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:#393A34;"> </span><span style="color:#A0ADA0;">// []</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Limit" tabindex="-1"><span id="Limit">Limit</span> <a class="header-anchor" href="#Limit" aria-label="Permalink to "<span id="Limit">Limit</span>""></a></h3><p>返回由源stream的元素组成的stream,该stream被截断为长度不超过maxSize。<b>支持链式操作</b></p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Limit</span><span style="color:#F6F6F4;">(maxSize </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) stream[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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Limit</span><span style="color:#999999;">(</span><span style="color:#393A34;">maxSize </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/qsO4aniDcGf" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> s1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Limit</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;"> s2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Limit</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;"> s3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Limit</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;"> s4 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Limit</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;">(s1.</span><span style="color:#97E1F1;">ToSlice</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;">(s2.</span><span style="color:#97E1F1;">ToSlice</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;">(s3.</span><span style="color:#97E1F1;">ToSlice</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;">(s4.</span><span style="color:#97E1F1;">ToSlice</span><span style="color:#F6F6F4;">())</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;">// []</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 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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">s1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Limit</span><span style="color:#999999;">(</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;">s2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Limit</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;">s3</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Limit</span><span style="color:#999999;">(</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;">s4</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Limit</span><span style="color:#999999;">(</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;">s1</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">s2</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">s3</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">s4</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">// []</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 2 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>返回元素与源stream的顺序相反的stream。<b>支持链式操作</b></p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Reverse</span><span style="color:#F6F6F4;">() stream[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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Reverse</span><span style="color:#999999;">()</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/A8_zkJnLHm4" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> reverse </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Reverse</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;">(reverse.</span><span style="color:#97E1F1;">ToSlice</span><span style="color:#F6F6F4;">())</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 2 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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">reverse</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Reverse</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;">reverse</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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 2 1]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Range" tabindex="-1"><span id="Range">Range</span> <a class="header-anchor" href="#Range" aria-label="Permalink to "<span id="Range">Range</span>""></a></h3><p>返回一个stream,该stream的元素在从源stream的开始(包含)到结束(排除)的范围内。<b>支持链式操作</b></p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Range</span><span style="color:#F6F6F4;">(start, end </span><span style="color:#97E1F1;font-style:italic;">int</span><span style="color:#F6F6F4;">) stream[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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Range</span><span style="color:#999999;">(</span><span style="color:#393A34;">start</span><span style="color:#999999;">,</span><span style="color:#393A34;"> end </span><span style="color:#AB5959;">int</span><span style="color:#999999;">)</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/indZY5V2f4j" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> s1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Range</span><span style="color:#F6F6F4;">(</span><span style="color:#BF9EEE;">0</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;"> s2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Range</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>
|
||
<span class="line"><span style="color:#F6F6F4;"> s3 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Range</span><span style="color:#F6F6F4;">(</span><span style="color:#BF9EEE;">0</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;"> s4 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Range</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;">(s1.</span><span style="color:#97E1F1;">ToSlice</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;">(s2.</span><span style="color:#97E1F1;">ToSlice</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;">(s3.</span><span style="color:#97E1F1;">ToSlice</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;">(s4.</span><span style="color:#97E1F1;">ToSlice</span><span style="color:#F6F6F4;">())</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]</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;">// [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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">s1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Range</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;">0</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;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Range</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>
|
||
<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;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Range</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;">3</span><span style="color:#999999;">)</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">s4</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Range</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>
|
||
<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;">s1</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">s2</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">s3</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">s4</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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]</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;">// [2]</span></span>
|
||
<span class="line"><span style="color:#999999;">}</span></span></code></pre></div><h3 id="Sorted" tabindex="-1"><span id="Sorted">Sorted</span> <a class="header-anchor" href="#Sorted" aria-label="Permalink to "<span id="Sorted">Sorted</span>""></a></h3><p>返回一个stream,该stream由源stream的元素组成,并根据提供的less函数进行排序。<b>支持链式操作</b></p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Sorted</span><span style="color:#F6F6F4;">(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;">) stream[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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Sorted</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 style="color:#393A34;"> stream</span><span style="color:#999999;">[</span><span style="color:#393A34;">T</span><span style="color:#999999;">]</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/XXtng5uonFj" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;">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>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> sorted </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Sorted</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 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>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(original.</span><span style="color:#97E1F1;">ToSlice</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;">(sorted.</span><span style="color:#97E1F1;">ToSlice</span><span style="color:#F6F6F4;">())</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 2 1 3]</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></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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">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>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">sorted</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Sorted</span><span style="color:#999999;">(</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 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 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;">original</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">sorted</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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 2 1 3]</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:#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>对stream的每个元素执行一个操作。</p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">ForEach</span><span style="color:#F6F6F4;">(action </span><span style="color:#F286C4;">func</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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">ForEach</span><span style="color:#999999;">(</span><span style="color:#393A34;">action </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></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/Dsm0fPqcidk" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> result </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;"> original.</span><span style="color:#97E1F1;">ForEach</span><span style="color:#F6F6F4;">(</span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item </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;"> 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;">// 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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> </span><span style="color:#2F798A;">0</span></span>
|
||
<span class="line"><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">ForEach</span><span style="color:#999999;">(</span><span style="color:#1E754F;">func</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;"> </span><span style="color:#999999;">{</span></span>
|
||
<span class="line"><span style="color:#393A34;"> result </span><span style="color:#999999;">+=</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;"> 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="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>使用关联累加函数对stream的元素执行reduce操作,并reduce操作结果(如果有)。</p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Reduce</span><span style="color:#F6F6F4;">(initial T, accumulator </span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(a, b 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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Reduce</span><span style="color:#999999;">(</span><span style="color:#393A34;">initial T</span><span style="color:#999999;">,</span><span style="color:#393A34;"> accumulator </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;"> T</span><span style="color:#999999;">)</span><span style="color:#393A34;"> T</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/6uzZjq_DJLU" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> result </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Reduce</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;">(a, b </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;"> 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>
|
||
<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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">result</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Reduce</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:#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;">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;"> 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>
|
||
<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="FindFirst" tabindex="-1"><span id="FindFirst">FindFirst</span> <a class="header-anchor" href="#FindFirst" aria-label="Permalink to "<span id="FindFirst">FindFirst</span>""></a></h3><p>返回此stream的第一个元素和true,如果stream为空,则返回零值和false。</p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">FindFirst</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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">FindFirst</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:#AB5959;">bool</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/9xEf0-6C1e3" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> result, ok </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">FindFirst</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 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;">// 1</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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">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;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">FindFirst</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;">// 1</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" tabindex="-1"><span id="FindLast">FindLast</span> <a class="header-anchor" href="#FindLast" aria-label="Permalink to "<span id="FindLast">FindLast</span>""></a></h3><p>返回此stream最后一个元素和true,如果stream为空,则返回零值和false。</p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">FindLast</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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">FindLast</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:#AB5959;">bool</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/WZD2rDAW-2h" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;">2</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;"> result, ok </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">FindLast</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 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;">// 1</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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">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>
|
||
<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;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">FindLast</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;">// 1</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="Max" tabindex="-1"><span id="Max">Max</span> <a class="header-anchor" href="#Max" aria-label="Permalink to "<span id="Max">Max</span>""></a></h3><p>根据提供的less函数返回stream的最大元素。less 函数: a > b</p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Max</span><span style="color:#F6F6F4;">(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;">) (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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Max</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 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:#AB5959;">bool</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/fm-1KOPtGzn" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;">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>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> max, ok </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Max</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 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>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(max)</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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">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>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">max</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;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Max</span><span style="color:#999999;">(</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 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 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;">max</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="Min" tabindex="-1"><span id="Min">Min</span> <a class="header-anchor" href="#Min" aria-label="Permalink to "<span id="Min">Min</span>""></a></h3><p>根据提供的less函数返回stream的最小元素。less函数: a < b</p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Min</span><span style="color:#F6F6F4;">(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;">) (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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Min</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 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:#AB5959;">bool</span><span style="color:#999999;">)</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/vZfIDgGNRe_0" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;">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>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F6F6F4;"> min, ok </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">Min</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 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>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(min)</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;">// 1</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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">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>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#B07D48;">min</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;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">Min</span><span style="color:#999999;">(</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 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 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;">min</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;">// 1</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="AllMatch" tabindex="-1"><span id="AllMatch">AllMatch</span> <a class="header-anchor" href="#AllMatch" aria-label="Permalink to "<span id="AllMatch">AllMatch</span>""></a></h3><p>判断stream的所有元素是否全部匹配指定判定函数。</p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">AllMatch</span><span style="color:#F6F6F4;">(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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">AllMatch</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>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/V5TBpVRs-Cx" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">AllMatch</span><span style="color:#F6F6F4;">(</span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item </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;"> item </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;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">AllMatch</span><span style="color:#F6F6F4;">(</span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item </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;"> item </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;"> 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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">AllMatch</span><span style="color:#999999;">(</span><span style="color:#1E754F;">func</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;"> </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;"> item </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;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">AllMatch</span><span style="color:#999999;">(</span><span style="color:#1E754F;">func</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;"> </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;"> item </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;"> 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="AnyMatch" tabindex="-1"><span id="AnyMatch">AnyMatch</span> <a class="header-anchor" href="#AnyMatch" aria-label="Permalink to "<span id="AnyMatch">AnyMatch</span>""></a></h3><p>判断stream是否包含匹配指定判定函数的元素。</p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">AnyMatch</span><span style="color:#F6F6F4;">(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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">AnyMatch</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>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/PTCnWn4OxSn" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">AnyMatch</span><span style="color:#F6F6F4;">(</span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item </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;"> item </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;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">AnyMatch</span><span style="color:#F6F6F4;">(</span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item </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;"> item </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;">(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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">AnyMatch</span><span style="color:#999999;">(</span><span style="color:#1E754F;">func</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;"> </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;"> item </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;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">AnyMatch</span><span style="color:#999999;">(</span><span style="color:#1E754F;">func</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;"> </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;"> item </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;">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="NoneMatch" tabindex="-1"><span id="NoneMatch">NoneMatch</span> <a class="header-anchor" href="#NoneMatch" aria-label="Permalink to "<span id="NoneMatch">NoneMatch</span>""></a></h3><p>判断stream的元素是否全部不匹配指定的判定函数。</p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">NoneMatch</span><span style="color:#F6F6F4;">(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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">NoneMatch</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>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/iWS64pL1oo3" target="_blank" rel="noreferrer">运行</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/stream</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;"> original </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> result1 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">NoneMatch</span><span style="color:#F6F6F4;">(</span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item </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;"> item </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;"> result2 </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> original.</span><span style="color:#97E1F1;">NoneMatch</span><span style="color:#F6F6F4;">(</span><span style="color:#F286C4;">func</span><span style="color:#F6F6F4;">(item </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;"> item </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;"> 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/stream</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;">original</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;">result1</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">NoneMatch</span><span style="color:#999999;">(</span><span style="color:#1E754F;">func</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;"> </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;"> item </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;"> </span><span style="color:#B07D48;">result2</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> original</span><span style="color:#999999;">.</span><span style="color:#998418;">NoneMatch</span><span style="color:#999999;">(</span><span style="color:#1E754F;">func</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;"> </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;"> item </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;"> 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="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>返回stream中元素的数量。</p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">Count</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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">Count</span><span style="color:#999999;">()</span><span style="color:#393A34;"> </span><span style="color:#AB5959;">int</span></span></code></pre></div><p><b>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/r3koY6y_Xo-" target="_blank" rel="noreferrer">运行</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/stream</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;"> stream.</span><span style="color:#97E1F1;">FromSlice</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;"> stream.</span><span style="color:#97E1F1;">FromSlice</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>
|
||
<span class="line"><span style="color:#F6F6F4;"> fmt.</span><span style="color:#97E1F1;">Println</span><span style="color:#F6F6F4;">(s1.</span><span style="color:#97E1F1;">Count</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;">(s2.</span><span style="color:#97E1F1;">Count</span><span style="color:#F6F6F4;">())</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</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></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/stream</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;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</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;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">FromSlice</span><span style="color:#999999;">([]</span><span style="color:#AB5959;">int</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;">s1</span><span style="color:#999999;">.</span><span style="color:#998418;">Count</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;">s2</span><span style="color:#999999;">.</span><span style="color:#998418;">Count</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</span></span>
|
||
<span class="line"><span style="color:#393A34;"> </span><span style="color:#A0ADA0;">// 0</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>返回stream中的元素切片。</p><p><b>函数签名:</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;"> (s stream[T]) </span><span style="color:#62E884;">ToSlice</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;"> </span><span style="color:#999999;">(</span><span style="color:#393A34;">s stream</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:#59873A;">ToSlice</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>示例:<span style="float:right;display:inline-block;"><a href="https://go.dev/play/p/jI6_iZZuVFE" target="_blank" rel="noreferrer">运行</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/stream</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;"> s </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> stream.</span><span style="color:#97E1F1;">Of</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;"> data </span><span style="color:#F286C4;">:=</span><span style="color:#F6F6F4;"> s.</span><span style="color:#97E1F1;">ToSlice</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;">(data)</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/stream</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;">s</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> stream</span><span style="color:#999999;">.</span><span style="color:#998418;">Of</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;">data</span><span style="color:#393A34;"> </span><span style="color:#999999;">:=</span><span style="color:#393A34;"> s</span><span style="color:#999999;">.</span><span style="color:#998418;">ToSlice</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;">data</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>`,157),g=[t,c,r,y,F,i,A,E,u,d,m];function h(f,B,b,v,C,k){return p(),o("div",null,g)}const T=l(e,[["render",h]]);export{D as __pageData,T as default};
|