Size: a a a

Golang Developers — русскоговорящее сообщество

2020 October 27

А

Анатолий in Golang Developers — русскоговорящее сообщество
Sergey Polyakov
а разве тут func (sl *MySlice)  не указывает, что это есть слайс
https://play.golang.org/p/WuB1tPfeErJ - тут понятней будет
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
&val тут не само значение а адрес где это значение можно взять
источник

СГ

Сергей Гришаев... in Golang Developers — русскоговорящее сообщество
Sergey Polyakov
Объясните пжл новичку , почему в первом случае не ставится указатель, а во втором ставится
В первом случае тоже звёздочка должна стоять, но компилятор делает это за вас, там правда придется скобками определить приоритет: (*p).Name = name
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
Если идет прямое присвоение значения, то компилятор сам понимает нужно ли звезду ставить, а если через функцию (как у вас append) то там четко прописано какой тип должен прийти агрументом значение или ссылка
источник

SP

Sergey Polyakov in Golang Developers — русскоговорящее сообщество
Анатолий
Если идет прямое присвоение значения, то компилятор сам понимает нужно ли звезду ставить, а если через функцию (как у вас append) то там четко прописано какой тип должен прийти агрументом значение или ссылка
Меня тут просто запутали Ваши слова :

не правильно сказал, должен быть слайс а не ссылка на слайс

int - число
*int - ссылка на число а не само число

у меня стоит *sl , получается это ссылка на слайс ,а вы пишете выше, что должен быть слайс, а не ссылка на него
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
Sergey Polyakov
Меня тут просто запутали Ваши слова :

не правильно сказал, должен быть слайс а не ссылка на слайс

int - число
*int - ссылка на число а не само число

у меня стоит *sl , получается это ссылка на слайс ,а вы пишете выше, что должен быть слайс, а не ссылка на него
у вас sl = *MySlise тоесть оно уже адрес, и нужно назад в значение перевести
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
оно имеет тип "ссылка на структуру MySlise"
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
*type = ссылка на конкретный тип
*value = значение которое лежит по ссылке
Разница в том что первое - тип а второе уже значение (переменная) которым работаете
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
i = int - переменная типа число и содержать будет число
i2 = *int - переменная типа "ссылка на число" и содержать будет не само число а указатель на него

i - содержит непосредственно число
&i - возвращает указатель на число
i2 - содержит указатель на число
*i2 - возвращает число по указателю

val и *val работают зеркально
источник

SP

Sergey Polyakov in Golang Developers — русскоговорящее сообщество
Анатолий
i = int - переменная типа число и содержать будет число
i2 = *int - переменная типа "ссылка на число" и содержать будет не само число а указатель на него

i - содержит непосредственно число
&i - возвращает указатель на число
i2 - содержит указатель на число
*i2 - возвращает число по указателю

val и *val работают зеркально
т.е. тут получается (sl *MySlice) - ссылка на слайс
а далее в *sl возвращается сам слайс, спасибо теперь более понятно
источник

x

x-foby in Golang Developers — русскоговорящее сообщество
Alexey Shumkin
В правом случае - сахар. Можно и ставить
Что вы имеете в виду?
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
Sergey Polyakov
т.е. тут получается (sl *MySlice) - ссылка на слайс
а далее в *sl возвращается сам слайс, спасибо теперь более понятно
точно, вообще почитайте про ссылки подробней, с ними придется работать переодически
источник

SP

Sergey Polyakov in Golang Developers — русскоговорящее сообщество
Анатолий
точно, вообще почитайте про ссылки подробней, с ними придется работать переодически
спасибо большое
источник
2020 October 28

SP

Sergey Polyakov in Golang Developers — русскоговорящее сообщество
Подскажите пжл момент, никак не могу разобраться в интерфейсах..

вот например код справа с  интерфейсом и слева без.
Не могу понять , зачем вообще например использовать интерфейс, если можно инициализировать структуру и вызвать у нее метод
источник

D

Dmitry in Golang Developers — русскоговорящее сообщество
Книжку по ооп надо почитать. Данный вопрос не имеет отношения к го
источник

RS

Roman Sakal in Golang Developers — русскоговорящее сообщество
Sergey Polyakov
Подскажите пжл момент, никак не могу разобраться в интерфейсах..

вот например код справа с  интерфейсом и слева без.
Не могу понять , зачем вообще например использовать интерфейс, если можно инициализировать структуру и вызвать у нее метод
в вашем примере не хвататет функции, куда tesla и boeng передавались бы аргументом. Какой тип вы в этом случае указали бы?
источник

SP

Sergey Polyakov in Golang Developers — русскоговорящее сообщество
Roman Sakal
в вашем примере не хвататет функции, куда tesla и boeng передавались бы аргументом. Какой тип вы в этом случае указали бы?
не совсем понял, тип чего ?
источник

RS

Roman Sakal in Golang Developers — русскоговорящее сообщество
тип аргумента функции, который сможет принять и tesla и boeng
источник

RS

Roman Sakal in Golang Developers — русскоговорящее сообщество
func ApplyTick(target Vehicle) {
   target.Move()
}
источник

RS

Roman Sakal in Golang Developers — русскоговорящее сообщество
ну а следом:
ApplyTick(tesla)
ApplyTick(boeng)
источник