В чем разница между [1] int {} и [] int {0} - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь изменить array в другом func, а затем вернуть измененное.Итак, я написал пример кода ниже, мой вопрос заключается в том, почему изменения в функции changeArr02 могут повлиять на источник arr, а changeArr01 - нет.

package main

import "fmt"

func changeArr01(arr [1]int) {
        arr[0] = -100
}

func changeArr02(arr []int) {
        arr[0] = -200
}

func main() {
        arr01 := [1]int{}
        changeArr01(arr01)
        fmt.Println(arr01) // 0

        arr02 := []int{0}
        changeArr02(arr02)
        fmt.Println(arr02) // -200
}

1 Ответ

5 голосов
/ 04 апреля 2019
 arr01 := [1]int{}

- это массив целых чисел размером 1

 arr02 := []int{0}

, это кусочек целых чисел с одним целым числом внутри (0)

, более подробно объяснено здесь: https://tour.golang.org/moretypes/7

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...