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

Golang::slice和nil的對比分析

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

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

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")
  }
}

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

前言

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

問題

以下是錯誤的用法,會報數(shù)組越界的錯誤,因為只是聲明了slice,卻沒有給實例化的對象,這一點如果是cpp的vector,便可以直接使用,但是golang 不行。

var slice []int

slice[1] = 0

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

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

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

slice := []int{}

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

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

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

相關文章

  • VSCode安裝go相關插件失敗的簡單解決方案

    VSCode安裝go相關插件失敗的簡單解決方案

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

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

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

    Go語言與其他語言進行交互的方式詳解

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

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

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

    Go語言實現(xiàn)棧與隊列基本操作學家

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

    Go開發(fā)Gin項目添加jwt功能實例詳解

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

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

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

    golang微服務框架基礎Gin基本路由使用詳解

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

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

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

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

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

最新評論