欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Golang中的四個(gè)括號示例詳解

 更新時(shí)間:2024年03月05日 10:25:11   作者:The_theme  
這篇文章主要介紹了Golang中的四個(gè)括號,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),通過實(shí)例代碼補(bǔ)充介紹了有效的括號golang實(shí)現(xiàn),需要的朋友可以參考下

Golang中的四個(gè)括號

代碼如下,首先第一個(gè)括號內(nèi)容為wk *worker表示這個(gè)函數(shù)是一個(gè)方法,屬于結(jié)構(gòu)體worker的方法,第二個(gè)括號內(nèi)容為say string,是方法的參數(shù),第三個(gè)括號內(nèi)容err error是方法的返回值,第四個(gè)括號是work方法內(nèi)部的匿名函數(shù)結(jié)尾處的括號內(nèi)容為"匿名函數(shù)調(diào)用自己",表示用該參數(shù)調(diào)用所屬的匿名方法

package main
type worker struct {
	id int
}
func (wk *worker) work(say string) (err error) {
	func(s string) {
		println(s)
		println(wk.id)
		println(say)
	}("匿名函數(shù)調(diào)用自己")
	panic("worker panic..")
	return err
}
func main() {
	aWorker := worker{id: 1}
	aWorker.work("我在工作")
}

補(bǔ)充:

有效的括號golang實(shí)現(xiàn)

給定一個(gè)只包括 '(',')','{','}','[',']' 的字符串,判斷字符串是否有效。

有效字符串需滿足:

  • 左括號必須用相同類型的右括號閉合。
  • 左括號必須以正確的順序閉合。

注意空字符串可被認(rèn)為是有效字符串。

輸入: "()"
輸出: true
輸入: "()[]{}"
輸出: true
輸入: "(]"
輸出: false
輸入: "([)]"
輸出: false
輸入: "{[]}"
輸出: true

首先理解題意:

  • 首先空字符串必定為true
  • 其次括號成對出現(xiàn)
  • 有可能在括號中間出現(xiàn)成對的括號

那我們就可以想象有一個(gè)容器,一直把字符串的每個(gè)字符塞進(jìn)去,當(dāng)成對出現(xiàn)的時(shí)候就去除,當(dāng)容器內(nèi)沒有任何元素了,那就說明字符串是有效的括號組合,否則不是

//特殊情況,空字符串返回true
    if len(s) == 0 {
        return true
    }
    //配對字典
    m := map[string]string{")": "(", "]": "[", "}": "{"}
    //棧
    var stack []string
    //把字符串的每個(gè)字符放進(jìn)棧中,每放一個(gè)就判斷與前一個(gè)是不是配對的
    for i := 0; i < len(s); i++ {
        if len(stack) == 0 {
            stack = append(stack, string(s[i]))
        } else {
            //判斷是否配對
            //如果是相同的話,那就去除棧的最后一個(gè)元素
            //如果不相同的話,那就把源字符串的對應(yīng)元素加進(jìn)棧中
            if stack[len(stack)-1] == m[string(s[i])] {
                stack = stack[:len(stack)-1]
            } else {
                stack = append(stack, string(s[i]))
            }
        }
    }
    //判斷棧中是否沒有元素
    //是的話返回true
    //否則返回false
    if len(stack) == 0 {
        return true
    } else {
        return false
    }

這里有個(gè)小技巧,就是每次我們放進(jìn)容器的字符,當(dāng)配對成功的時(shí)候,肯定是塞進(jìn)右邊的符號,所以可以構(gòu)造一個(gè)以右邊括號為key,左邊括號為值得字典

到此這篇關(guān)于Golang中的四個(gè)括號的文章就介紹到這了,更多相關(guān)Golang四個(gè)括號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go channel發(fā)送方和接收方如何相互阻塞等待源碼解讀

    Go channel發(fā)送方和接收方如何相互阻塞等待源碼解讀

    這篇文章主要為大家介紹了Go channel發(fā)送方和接收方如何相互阻塞等待源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 一文搞懂如何實(shí)現(xiàn)Go 超時(shí)控制

    一文搞懂如何實(shí)現(xiàn)Go 超時(shí)控制

    這篇文章主要介紹了一文搞懂如何實(shí)現(xiàn)Go 超時(shí)控制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Golang::slice和nil的對比分析

    Golang::slice和nil的對比分析

    這篇文章主要介紹了Golang::slice和nil的對比分析,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • golang如何使用struct的tag屬性的詳細(xì)介紹

    golang如何使用struct的tag屬性的詳細(xì)介紹

    這篇文章主要介紹了golang如何使用struct的tag屬性的詳細(xì)介紹,從例子說起,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • 使用Go語言連接和操作數(shù)據(jù)庫的基本步驟

    使用Go語言連接和操作數(shù)據(jù)庫的基本步驟

    在Go語言中,連接和操作數(shù)據(jù)庫通常使用database/sql包,它提供了一個(gè)數(shù)據(jù)庫抽象層,支持多種數(shù)據(jù)庫引擎,如MySQL、PostgreSQL、SQLite等,下面我將以MySQL為例,詳細(xì)講解如何使用Go語言連接和操作數(shù)據(jù)庫,需要的朋友可以參考下
    2024-06-06
  • 詳解Go語言中如何高效地處理集合

    詳解Go語言中如何高效地處理集合

    在?Go?語言中,雖然沒有像?Java?或?Python?那樣的傳統(tǒng)集合框架,但也可以非常高效地處理集合操作,下面小編就來和大家講講具體處理方法吧
    2025-01-01
  • go并發(fā)實(shí)現(xiàn)素?cái)?shù)篩的代碼

    go并發(fā)實(shí)現(xiàn)素?cái)?shù)篩的代碼

    這篇文章主要介紹了go并發(fā)實(shí)現(xiàn)素?cái)?shù)篩的代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • go通過編碼縮短字符串的長度實(shí)現(xiàn)方法步驟

    go通過編碼縮短字符串的長度實(shí)現(xiàn)方法步驟

    這篇文章主要為大家介紹了go通過編碼縮短字符串的長度實(shí)現(xiàn)方法步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 一文讓你理解go語言的Context

    一文讓你理解go語言的Context

    在Go語言中,Context(上下文)是一個(gè)類型,用于在程序中傳遞請求范圍的值、截止時(shí)間、取消信號和其他與請求相關(guān)的上下文信息,它在多個(gè)goroutine之間傳遞這些值,使得并發(fā)編程更加可靠和簡單,本文詳細(xì)介紹go語言的Context,需要的朋友可以參考下
    2023-05-05
  • 基于Golang編寫貪吃蛇游戲

    基于Golang編寫貪吃蛇游戲

    這篇文章主要為大家學(xué)習(xí)介紹了Golang如何基于終端庫termbox-go做個(gè)功能較簡單的貪吃蛇游戲,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值
    2023-07-07

最新評論