<pre><span style="color:#008080;"> 1</span> <span style="color:#000000;">package main
</span><span style="color:#008080;"> 2</span>
<span style="color:#008080;"> 3</span> import <span style="color:#800000;">"</span><span style="color:#800000;">fmt</span><span style="color:#800000;">"</span>
<span style="color:#008080;"> 4</span>
<span style="color:#008080;"> 5</span> func iMap(num []<span style="color:#0000ff;">int</span>, f func(a <span style="color:#0000ff;">int</span>) <span style="color:#0000ff;">int</span>) []<span style="color:#0000ff;">int</span><span style="color:#000000;">{
</span><span style="color:#008080;"> 6</span> <span style="color:#0000ff;">var</span> r []<span style="color:#0000ff;">int</span>
<span style="color:#008080;"> 7</span>
<span style="color:#008080;"> 8</span> <span style="color:#0000ff;">for</span> _, n :=<span style="color:#000000;"> range num{
</span><span style="color:#008080;"> 9</span> r =<span style="color:#000000;"> append(r, f(n))
</span><span style="color:#008080;">10</span> <span style="color:#000000;"> }
</span><span style="color:#008080;">11</span>
<span style="color:#008080;">12</span> <span style="color:#0000ff;">return</span><span style="color:#000000;"> r
</span><span style="color:#008080;">13</span> <span style="color:#000000;">}
</span><span style="color:#008080;">14</span>
<span style="color:#008080;">15</span> <span style="color:#000000;">func main() {
</span><span style="color:#008080;">16</span> num := []<span style="color:#0000ff;">int</span>{<span style="color:#800080;">2</span>, <span style="color:#800080;">4</span>, <span style="color:#800080;">6</span>, <span style="color:#800080;">8</span><span style="color:#000000;">}
</span><span style="color:#008080;">17</span>
<span style="color:#008080;">18</span> fmt.Println(<span style="color:#800000;">"</span><span style="color:#800000;">before: </span><span style="color:#800000;">"</span><span style="color:#000000;">, num)
</span><span style="color:#008080;">19</span>
<span style="color:#008080;">20</span> result := iMap(num, func(a <span style="color:#0000ff;">int</span>) <span style="color:#0000ff;">int</span><span style="color:#000000;">{
</span><span style="color:#008080;">21</span> <span style="color:#0000ff;">return</span> a * <span style="color:#800080;">2</span>
<span style="color:#008080;">22</span> <span style="color:#000000;"> })
</span><span style="color:#008080;">23</span>
<span style="color:#008080;">24</span> fmt.Println(<span style="color:#800000;">"</span><span style="color:#800000;">after: </span><span style="color:#800000;">"</span><span style="color:#000000;">, result)
</span><span style="color:#008080;">25</span> }</pre>
执行结果:
<pre>before: [<span style="color:#800080;">2</span> <span style="color:#800080;">4</span> <span style="color:#800080;">6</span> <span style="color:#800080;">8</span><span style="color:#000000;">]
after: [</span><span style="color:#800080;">4</span> <span style="color:#800080;">8</span> <span style="color:#800080;">12</span> <span style="color:#800080;">16</span>]</pre>