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

Golang中的四個括號示例詳解

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

Golang中的四個括號

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

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ù)調用自己")
	panic("worker panic..")
	return err
}
func main() {
	aWorker := worker{id: 1}
	aWorker.work("我在工作")
}

補充:

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

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

有效字符串需滿足:

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

注意空字符串可被認為是有效字符串。

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

首先理解題意:

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

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

//特殊情況,空字符串返回true
    if len(s) == 0 {
        return true
    }
    //配對字典
    m := map[string]string{")": "(", "]": "[", "}": "{"}
    //棧
    var stack []string
    //把字符串的每個字符放進棧中,每放一個就判斷與前一個是不是配對的
    for i := 0; i < len(s); i++ {
        if len(stack) == 0 {
            stack = append(stack, string(s[i]))
        } else {
            //判斷是否配對
            //如果是相同的話,那就去除棧的最后一個元素
            //如果不相同的話,那就把源字符串的對應元素加進棧中
            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
    }

這里有個小技巧,就是每次我們放進容器的字符,當配對成功的時候,肯定是塞進右邊的符號,所以可以構造一個以右邊括號為key,左邊括號為值得字典

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

相關文章

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

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

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

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

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

    Golang::slice和nil的對比分析

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

    golang如何使用struct的tag屬性的詳細介紹

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

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

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

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

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

    go并發(fā)實現(xiàn)素數(shù)篩的代碼

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

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

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

    一文讓你理解go語言的Context

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

    基于Golang編寫貪吃蛇游戲

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

最新評論