檢查Go語言中位元組切片是否以指定字尾結尾


檢查位元組切片是否以指定字尾結尾是Go語言中的一項常見任務。Go語言的`bytes`包包含一個名為`HasSuffix`的函式,用於確定給定的位元組切片是否以指定字尾結尾。在本文中,我們將討論`HasSuffix`函式的語法和用法,並提供一些示例。

HasSuffix函式的語法

HasSuffix函式是Go語言`bytes`包的一部分,它接受兩個引數。第一個引數是要檢查的位元組切片,第二個引數是要與位元組切片進行比較的字尾。

HasSuffix函式的語法如下:

func HasSuffix(s, suffix []byte) bool

在上述語法中,`s`是要檢查的位元組切片,`suffix`是要與位元組切片進行比較的字尾。如果位元組切片以指定字尾結尾,則該函式返回布林值`true`,否則返回`false`。

示例

讓我們來看一些示例,以瞭解如何在Go語言中使用`HasSuffix`函式。

示例1:檢查位元組切片是否以後綴結尾

package main

import (
   "fmt"
   "bytes"
)

func main() {
   slice1 := []byte("hello, world!")
   suffix1 := []byte("world!")
   result1 := bytes.HasSuffix(slice1, suffix1)
   fmt.Println(result1)

   slice2 := []byte("this is a test")
   suffix2 := []byte("abc")
   result2 := bytes.HasSuffix(slice2, suffix2)
   fmt.Println(result2)
}

輸出

true
false

在上面的示例中,我們有兩個位元組切片。我們正在檢查第一個切片是否以後綴“world!”結尾,第二個切片是否以後綴“abc”結尾。第一個切片以後綴“world!”結尾,因此`HasSuffix`函式返回`true`,而第二個切片不以後綴“abc”結尾,因此該函式返回`false`。

示例2:使用if-else語句檢查位元組切片是否以後綴結尾

package main

import (
   "fmt"
   "bytes"
)

func main() {
   slice1 := []byte("example.pdf")
   suffix1 := []byte(".pdf")
   if bytes.HasSuffix(slice1, suffix1) {
      fmt.Println("This is a PDF file")
   } else {
      fmt.Println("This is not a PDF file")
   }

   slice2 := []byte("document.txt")
   suffix2 := []byte(".pdf")
   if bytes.HasSuffix(slice2, suffix2) {
      fmt.Println("This is a PDF file")
   } else {
      fmt.Println("This is not a PDF file")
   }
}

輸出

This is a PDF file
This is not a PDF file

在上面的示例中,我們有兩個位元組切片。我們正在使用if-else語句檢查第一個切片是否以“.pdf”字尾結尾。如果切片以“.pdf”字尾結尾,我們列印“這是一個PDF檔案”,否則我們列印“這不是一個PDF檔案”。同樣,我們正在檢查第二個切片是否以“.pdf”字尾結尾。

結論

利用`bytes`包提供的`HasSuffix`函式,可以輕鬆地在Go語言中確定位元組切片是否以給定的字尾結尾。我們希望本文能幫助您瞭解`HasSuffix`函式的功能和應用。

更新於:2023年4月7日

70次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告