最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang中的四個括號示例詳解

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

Golang中的四個括號

代碼如下,首先第一個括號內(nèi)容為wk *worker表示這個函數(shù)是一個方法,屬于結(jié)構(gòu)體worker的方法,第二個括號內(nèi)容為say string,是方法的參數(shù),第三個括號內(nèi)容err error是方法的返回值,第四個括號是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實現(xiàn)

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

有效字符串需滿足:

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

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

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

首先理解題意:

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

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

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

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

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

相關(guān)文章

  • golang import自定義包方式

    golang import自定義包方式

    這篇文章主要介紹了golang import自定義包方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Go 語言中和類型Sum Types的創(chuàng)新實現(xiàn)方案詳解

    Go 語言中和類型Sum Types的創(chuàng)新實現(xiàn)方案詳解

    本文介紹了Go語言中如何通過ProjectionStructs和SafeUnsafeConversion來實現(xiàn)和類型(SumTypes),該方案通過內(nèi)存布局相同的多個結(jié)構(gòu)體投影同一塊數(shù)據(jù),實現(xiàn)零自定義編解碼、編譯時類型安全和IDE自動補(bǔ)全友好,感興趣的朋友跟隨小編一起看看吧
    2026-02-02
  • golang使用泛型結(jié)構(gòu)體實現(xiàn)封裝切片

    golang使用泛型結(jié)構(gòu)體實現(xiàn)封裝切片

    這篇文章主要為大家詳細(xì)介紹了golang使用泛型結(jié)構(gòu)體實現(xiàn)封裝切片,即封裝切片的增、刪、改、查、長度大小、ForEach(遍歷切片),感興趣的小伙伴可以學(xué)習(xí)一下
    2023-10-10
  • Golang Defer基礎(chǔ)操作詳解

    Golang Defer基礎(chǔ)操作詳解

    在golang當(dāng)中,defer代碼塊會在函數(shù)調(diào)用鏈表中增加一個函數(shù)調(diào)用。這個函數(shù)調(diào)用不是普通的函數(shù)調(diào)用,而是會在函數(shù)正常返回,也就是return之后添加一個函數(shù)調(diào)用。因此,defer通常用來釋放函數(shù)內(nèi)部變量
    2022-10-10
  • golang實現(xiàn)redis的延時消息隊列功能示例

    golang實現(xiàn)redis的延時消息隊列功能示例

    這篇文章主要介紹了golang實現(xiàn)redis的延時消息隊列功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Go 結(jié)構(gòu)化日志slog入門與實戰(zhàn)指南 附避坑秘籍

    Go 結(jié)構(gòu)化日志slog入門與實戰(zhàn)指南 附避坑秘籍

    Go 1.21終于帶來了官方結(jié)構(gòu)化日志log/slog,本文將帶你從零上手 slog,并通過幾個小例子展示它如何讓日志變得更結(jié)構(gòu)化、可查詢、可維護(hù),感興趣的朋友跟隨小編一起看看吧
    2026-02-02
  • Apache?IoTDB開發(fā)系統(tǒng)之Go原生接口方法

    Apache?IoTDB開發(fā)系統(tǒng)之Go原生接口方法

    這篇文章主要為大家介紹了?Apache?IoTDB開發(fā)系統(tǒng)之Go原生接口方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • golang 對象池sync.Pool的實現(xiàn)

    golang 對象池sync.Pool的實現(xiàn)

    這篇文章主要介紹了golang 對象池sync.Pool的實現(xiàn), 用于緩存和復(fù)用臨時對象,以減少內(nèi)存分配和垃圾回收的壓力,下面就來介紹一下,感興趣的可以了解一下
    2025-05-05
  • golang中tar壓縮和解壓文件詳情

    golang中tar壓縮和解壓文件詳情

    這篇文章主要給大家介紹golang中tar壓縮和解壓文件,文章以查看官方文檔自帶的給大家演習(xí)一下golang的archive/tar壓縮和解壓功能,需要的朋友可以參考一下
    2021-11-11
  • 基于go+vue實現(xiàn)的golang每日新聞數(shù)據(jù)瀏覽與檢索平臺(推薦)

    基于go+vue實現(xiàn)的golang每日新聞數(shù)據(jù)瀏覽與檢索平臺(推薦)

    gonews是基于 go+vue 實現(xiàn)的golang每日新聞瀏覽與檢索平臺,本文通過實例代碼給大家講解,介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友參考下吧
    2018-01-01

最新評論

奇台县| 玉林市| 建德市| 峨眉山市| 望江县| 岳普湖县| 静宁县| 乌鲁木齐县| 曲靖市| 贞丰县| 常德市| 饶河县| 岳普湖县| 定陶县| 玛纳斯县| 凤台县| 太和县| 辰溪县| 电白县| 博白县| 惠水县| 乌恰县| 唐山市| 友谊县| 揭阳市| 习水县| 桂林市| 扶风县| 合水县| 合阳县| 柯坪县| 西峡县| 新密市| 曲周县| 屏东县| 陆川县| 托克托县| 阳城县| 宜春市| 安丘市| 启东市|