Как изменить struct boolean из вложенной функции? - PullRequest
0 голосов
/ 26 декабря 2018

Установка структуры из вложенного функционала не работает.

Я уже пробовал примеры из документации: https://play.golang.org/p/Pw9f20zwja

type myStruct struct {
    abrakadabra bool 
}

func (f *ChangeMe) SetName(abrakadabra bool) {
    f.abrakadabra = true
}

func something() {
    var flag ChangeMe
    f := new(ChangeMe)

    copy := func(r io.ReadCloser, w io.WriteCloser) {
        //...some code..

        if err != nil { 
            f.SetName(true)
            log.Println(flag.abrakadabra)
        }
    } 

в журнале печати -логическое значение абракадабры остается ложным (начальное значение), почему оно не меняется на истинное?

1 Ответ

0 голосов
/ 26 декабря 2018

Вы запускаете SetName для f, затем печатаете значение из флага.f и flag - это два разных значения типа ChangeMe.

f.SetName(true)
log.Println(f.abrakadabra)

или

flag.SetName(true)
log.Println(flag.abrakadabra)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...