Go語言實現(xiàn)字符串切片賦值的方法小結(jié)
前言
在所有編程語言中都涉及到大量的字符串操作,可見熟悉對字符串的操作是何等重要。本文通過示例詳細(xì)介紹了Go語言實現(xiàn)字符串切片賦值的方法,感興趣的朋友們跟著小編一起來看看吧。
1. 在for循環(huán)的range中
func StrRangeTest() { str := []string{"str1", "str2", "str3"} for i, v := range str { fmt.Println(i, v) v = "test" } fmt.Println(str)}
結(jié)果:對v的賦值,不會改變字符創(chuàng)切片的值。
0 str1 1 str2 2 str3 [str1 str2 str3]
結(jié)論:range是賦值拷貝
2. 在函數(shù)的參數(shù)傳遞
func Handler() { strArr := []string{"str1", "str2", "str3"} fmt.Println("before call func:", strArr) strFuncTest(strArr) fmt.Println("after call func:", strArr) } func strFuncTest(strArr []string) { strArr[0] = "test" }
結(jié)果:函數(shù)中對字符串切片的賦值,會改變原切片的值。
[str1 str2 str3] [test str2 str3]
結(jié)論:函數(shù)參數(shù)的傳遞是傳指針
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
Go語言之io.ReadAtLeast函數(shù)的基本使用和原理解析
io.ReadAtLeast函數(shù)是Go語言標(biāo)準(zhǔn)庫提供的一個工具函數(shù),能夠從數(shù)據(jù)源讀取至少指定數(shù)量的字節(jié)數(shù)據(jù)到緩沖區(qū)中,這篇文章主要介紹了io.ReadAtLeast函數(shù)的相關(guān)知識,需要的朋友可以參考下2023-07-07golang?channel多協(xié)程通信常用方法底層原理全面解析
channel?是?goroutine?與?goroutine?之間通信的重要橋梁,借助?channel,我們能很輕易的寫出一個多協(xié)程通信程序,今天,我們就來看看這個?channel?的常用用法以及底層原理2023-09-09Go 1.23中Timer無buffer的實現(xiàn)方式詳解
在 Go 1.23 中,Timer 的實現(xiàn)通常是通過 time 包提供的 time.Timer 類型來實現(xiàn)的,本文主要介紹了Go 1.23中Timer無buffer的實現(xiàn)方式,需要的可以了解下2025-03-03Go垃圾回收提升內(nèi)存管理效率優(yōu)化最佳實踐
這篇文章主要為大家介紹了Go垃圾回收提升內(nèi)存管理效率優(yōu)化最佳實踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12詳解如何在Go中循環(huán)中使用Defer關(guān)鍵字示例詳解
這篇文章主要為大家介紹了詳解如何在Go中循環(huán)中使用Defer關(guān)鍵字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09Golang 語言控制并發(fā) Goroutine的方法
本文我們介紹了不同場景中分別適合哪種控制并發(fā) goroutine 的方式,其中,channel 適合控制少量 并發(fā) goroutine,WaitGroup 適合控制一組并發(fā) goroutine,而 context 適合控制多級并發(fā) goroutine,感興趣的朋友跟隨小編一起看看吧2021-06-06