第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

交換兩個(gè)字符串(Golang)

交換兩個(gè)字符串(Golang)

Go
猛跑小豬 2021-12-13 18:42:12
我目前正在學(xué)習(xí) Golang,我決定編寫一些簡(jiǎn)單的算法來(lái)學(xué)習(xí)語(yǔ)法。我希望它還沒(méi)有答案,但我沒(méi)有找到它..我有交換字符串的問(wèn)題func swap(str1, str2 string) {    /*     * Also possible :     * str1, str2 = str2, str1     */    // str1, str2 = str2, str1    tmp := str1    str1 = str2    str2 = tmp}func main() {    a := "World !"    b := "Hello"    swap(a, b)    fmt.Printf("a=%s\nb=%s\n", a, b)}為什么這段代碼不起作用?
查看完整描述

3 回答

?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

交換str1andstr2不會(huì)改變aand b,因?yàn)樗鼈兪莂and 的副本b。使用指針:


func swap(str1, str2 *string) {

    *str1, *str2 = *str2, *str1

}


func main() {

    a := "salut"

    b := "les gens"

    swap(&a, &b)

    fmt.Printf("a=%s\nb=%s\n", a, b)

}

http://play.golang.org/p/Qw0t5I-XGT


查看完整回答
反對(duì) 回復(fù) 2021-12-13
?
拉丁的傳說(shuō)

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊

這將是慣用的方式。


package main


import "fmt"


func swap(a, b string)(string, string) {

    return b, a

}


func main() {

    f, s := swap("world" , "hello")

    fmt.Println(f, s)

}


查看完整回答
反對(duì) 回復(fù) 2021-12-13
?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

內(nèi)置類型作為函數(shù)參數(shù)是按值傳遞的,但是如果元素被解引用會(huì)修改原來(lái)的值,比如slice、map。例如


package main


import (

    "bytes"

    "fmt"

    "strings"

)


func f_1(a int) {

    a = 2

}


func f_1_1(a *int) {

    *a = 2

}


func f_2(s string) {

    s = "cba"

}


func f_2_1(s *string) {

    *s = "cba"

}


func f_3(v []string) {

    v[0] = "haha"

}


func f_3_1(v []string) {

    v = nil

}


func f_3_2(v *[]string) {

    *v = nil

}


func f_4(m map[int]int) {

    m[1] = 3

    m[3] = 1

}


func f_4_1(m map[int]int) {

    m = nil

}


func f_4_2(m *map[int]int) {

    *m = nil

}


func f_5(b []byte) {

    b[0] = 0x40

}


func f_5_1(b []byte) {

    b = bytes.Replace(b, []byte("1"), []byte("a"), -1)

}


func f_5_2(b *[]byte) {

    *b = bytes.Replace(*b, []byte("1"), []byte("a"), -1)

}


type why struct {

    s []string

}


func (ss why) SetV(s []string) {

    ss.s = s

}


func (ss *why) SetP(s []string) {

    ss.s = s

}


func (ss why) String() string {

    return strings.Join(ss.s, ",")

}


func main() {

    a := 1

    s := "abc"

    v := []string{"sd", "aa"}

    m := map[int]int{1: 1, 2: 2, 3: 3}

    f_1(a)

    f_2(s)

    f_3(v)

    f_4(m)

    fmt.Printf("%d,%s,%v,%v\n", a, s, v, m)

    f_3_1(v)

    f_4_1(m)

    fmt.Printf("%d,%s,%v,%v\n", a, s, v, m)

    f_1_1(&a)

    f_2_1(&s)

    f_3_2(&v)

    f_4_2(&m)

    fmt.Printf("%d,%s,%v,%v\n", a, s, v, m)

    b := []byte("12145178")

    f_5(b)

    fmt.Printf("%s\n", b)

    f_5_1(b)

    fmt.Printf("%s\n", b)

    f_5_2(&b)

    fmt.Printf("%s\n", b)

    ss := &why{}

    ss.SetV([]string{"abc", "efg"})

    fmt.Println(ss)

    ss.SetP([]string{"abc", "efg"})

    fmt.Println(ss)

}


查看完整回答
反對(duì) 回復(fù) 2021-12-13
  • 3 回答
  • 0 關(guān)注
  • 337 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)