Go by Example 中文版 組合函式

2021-10-24 08:01:36 字數 2477 閱讀 9830

我們經常需要程式對資料集合執行操作, 例如選擇滿足給定條件的全部 item, 或通過自定義函式將全部 item 對映到乙個新的集合。

在其它語言中,通常會使用泛型資料結構和演算法。 但 go 不支援泛型,如果你的程式或者資料型別有需要,通常的做法是提供函式集。

這是一些 strings 切片的組合函式示例。 你可以使用這些例子來構建自己的函式。 注意,在某些情況下,最簡單明瞭的方法是: 直接內聯操作方法集,而不是建立並呼叫幫助函式。

go的**示例如下所示:

/**

** go by example 中文版: 組合函式

** ** collection-functions

我們經常需要程式對資料集合執行操作, 例如選擇滿足給定條件的全部 item, 或通過自定義函式將全部 item 對映到乙個新的集合。

在其它語言中,通常會使用泛型資料結構和演算法。 但 go 不支援泛型,如果你的程式或者資料型別有需要,通常的做法是提供函式集。

這是一些 strings 切片的組合函式示例。 你可以使用這些例子來構建自己的函式。

注意,在某些情況下,最簡單明瞭的方法是: 直接內聯操作方法集,而不是建立並呼叫幫助函式。

** */

package main

import

("fmt"

"strings"

)/**

** index 返回目標字串t在vs中第一次出現位置的索引,或者在沒有匹配返回值時返回-1。

*/func

index

(vs [

]string

, t string

)int

}return-1

}// include 如果目標字串t存在於切片vs中,則返貨true。

func

include

(vs [

]string

, t string

)bool

// any 如果切片 vs中的任意乙個字串滿足條件f,則返回true。

func

any(vs [

]string

, f func

(string

)bool

)bool

}return

false

}// all 如果切片vs中的所有字串都滿足條件f,則返回true。

func

all(vs [

]string

, f func

(string

)bool

)bool

}return

true

}// filter 返回乙個新的切片,新切片由原切片vs中滿足條件f的字串構成。

func

filter

(vs [

]string

, f func

(string

)bool)[

]string

}return vsf

}// map 返回乙個新的切片,新切片的字串由原切片vs中的字串經過函式f對映後得到。

func

map(vs [

]string

, f func

(string

)string)[

]string

return vsm

}// 試試各種組合函式。

func

main()

fmt.

println

(index

(strs,

"pear"))

fmt.

println

(include

(strs,

"grape"))

fmt.

println

(any

(strs,

func

(v string

)bool))

fmt.

println

(all

(strs,

func

(v string

)bool))

fmt.

println

(filter

(strs,

func

(v string

)bool))

fmt.

println

(map

(strs, strings.toupper)

)}

上面的例子都是用的匿名函式,當前,你也可以使用正確型別的命名函式

執行上述**,得到如下結果:

$ go run collection-functions.go 

2false

true

false

下乙個例子: 字串函式

@mmcgrana 編寫 | everyx 翻譯 | 專案位址 | license

Go by Example 中文版 時間

go by example 中文版 時間 go 為時間 time 和時間段 duration 提供了大量的支援 這裡有一些例子。go示例 如下 package main go by example 中文版 時間 go 為時間 time 和時間段 duration 提供了大量的支援 這兒有是一些例子。...

Go by Example 中文版 時間戳

一般程式會有獲取 unix 時間 的秒數,毫秒數,或者微秒數的需求。來看看如何用 go 來實現。go語言的示例 如下 package main go by example 中文版 時間戳 一般程式會有獲取 unix 時間 的秒數,毫秒數,或者微秒數的需求。來看看如何用 go 來實現。import f...

Go by Example 中文版 讀檔案

go by example 中文版 讀檔案 讀寫檔案在很多程式中都是必須的基本任務。首先我們來看一些讀檔案的例子。package main import bufio fmt io io ioutil os 讀取檔案需要經常進行錯誤檢查,這個幫助方法可以精簡下面的錯誤檢查過程。func check e...