亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Golang::slice和nil的對(duì)比分析

 更新時(shí)間:2020年12月25日 09:10:18   作者:天已青色等煙雨來  
這篇文章主要介紹了Golang::slice和nil的對(duì)比分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧~

package main
import (
  "fmt"
)
func main() {
  var s1 []int
  if s1 == nil {
    fmt.Println("s1==nil")
  } else {
    fmt.Println("s1!=nil")
  }
  var arr = [5]int{}
  s1 = arr[:]
  if s1 == nil {
    fmt.Println("s1==nil")
  } else {
    fmt.Println("s1!=nil")
  }
}

補(bǔ)充:[golang]nil slice和empty slice的區(qū)別

前言

在開發(fā)的時(shí)候,會(huì)遇到對(duì)于nil slice和empty slice的問題,往往在聲明了slice之后,在使用的時(shí)候卻出現(xiàn)了問題。

問題

以下是錯(cuò)誤的用法,會(huì)報(bào)數(shù)組越界的錯(cuò)誤,因?yàn)橹皇锹暶髁藄lice,卻沒有給實(shí)例化的對(duì)象,這一點(diǎn)如果是cpp的vector,便可以直接使用,但是golang 不行。

var slice []int

slice[1] = 0

此時(shí)slice的值是nil,這種情況可以用于需要返回slice的函數(shù),當(dāng)函數(shù)出現(xiàn)異常的時(shí)候,保證函數(shù)依然會(huì)有nil的返回值。

empty slice 是指slice不為nil,但是slice沒有值,slice的底層的空間是空的,此時(shí)的定義如下:

slice := make([]int,0)//或者

slice := []int{}

當(dāng)我們查詢或者處理一個(gè)空的列表的時(shí)候,這非常有用,它會(huì)告訴我們返回的是一個(gè)列表,但是列表內(nèi)沒有任何值。

總之,nil slice 和 empty slice是不同的東西,在編程的需要加以區(qū)分。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • VSCode安裝go相關(guān)插件失敗的簡(jiǎn)單解決方案

    VSCode安裝go相關(guān)插件失敗的簡(jiǎn)單解決方案

    這篇文章主要給大家介紹了關(guān)于VSCode安裝go相關(guān)插件失敗的簡(jiǎn)單解決方案,VSCode是我們開發(fā)go程序的常用工具,最近安裝的時(shí)候遇到了些問題,需要的朋友可以參考下
    2023-07-07
  • 如何使用?Go?和?Excelize?構(gòu)建電子表格

    如何使用?Go?和?Excelize?構(gòu)建電子表格

    這篇文章主要介紹了如何使用Go和Excelize構(gòu)建電子表格,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Go語言與其他語言進(jìn)行交互的方式詳解

    Go語言與其他語言進(jìn)行交互的方式詳解

    在當(dāng)今的軟件開發(fā)領(lǐng)域,多種編程語言常常需要協(xié)同工作,以充分利用各自的優(yōu)勢(shì)來構(gòu)建復(fù)雜的應(yīng)用系統(tǒng),Go 語言作為一門高效、簡(jiǎn)潔的編程語言,也經(jīng)常需要與其他語言進(jìn)行交互,接下來,我們將詳細(xì)探討 Go 語言如何與其他語言進(jìn)行交互,需要的朋友可以參考下
    2024-06-06
  • golang容易導(dǎo)致內(nèi)存泄漏的6種情況匯總

    golang容易導(dǎo)致內(nèi)存泄漏的6種情況匯總

    內(nèi)存泄漏是我們?cè)谏a(chǎn)環(huán)境中必須面臨的問題,下面這篇文章主要給大家介紹了關(guān)于golang容易導(dǎo)致內(nèi)存泄漏的6種情況,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • Go語言實(shí)現(xiàn)棧與隊(duì)列基本操作學(xué)家

    Go語言實(shí)現(xiàn)棧與隊(duì)列基本操作學(xué)家

    go語言中,并沒有棧與隊(duì)列相關(guān)的數(shù)據(jù)結(jié)構(gòu),但是我們可以借助切片來實(shí)現(xiàn)棧與隊(duì)列的操作;接下來我們一起實(shí)現(xiàn)棧與隊(duì)列基本操作,感興趣的可以了解一下
    2022-11-11
  • Go開發(fā)Gin項(xiàng)目添加jwt功能實(shí)例詳解

    Go開發(fā)Gin項(xiàng)目添加jwt功能實(shí)例詳解

    這篇文章主要為大家介紹了Go開發(fā)Gin項(xiàng)目中添加jwt功能實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Go語言實(shí)現(xiàn)AzDG可逆加密算法實(shí)例

    Go語言實(shí)現(xiàn)AzDG可逆加密算法實(shí)例

    這篇文章主要介紹了Go語言實(shí)現(xiàn)AzDG可逆加密算法,實(shí)例分析了AzDG可逆加密算法的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • golang微服務(wù)框架基礎(chǔ)Gin基本路由使用詳解

    golang微服務(wù)框架基礎(chǔ)Gin基本路由使用詳解

    這篇文章主要為大家介紹了golang微服務(wù)框架Gin基本路由的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • 深度解密Go語言中字符串的使用

    深度解密Go語言中字符串的使用

    在編程語言中,字符串發(fā)揮著重要的角色。這篇文章就來帶大家一起深度解密Go語言中的字符串,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-09-09
  • Go自定義數(shù)據(jù)序列化的流程詳解

    Go自定義數(shù)據(jù)序列化的流程詳解

    在Go語言中,自定義數(shù)據(jù)的序列化是一個(gè)常見的需求,本文將深入探討 Go 語言中自定義數(shù)據(jù)序列化的流程,包括關(guān)鍵概念、技巧和最佳實(shí)踐,旨在幫助開發(fā)者更高效地進(jìn)行數(shù)據(jù)序列化工作,需要的朋友可以參考下
    2024-06-06

最新評(píng)論