Size: a a a

2020 June 30

E

Edgar in Go-go!
Yevhenii
Code с большой. Во пример того, что нужно

type Packet struct {
 Code    uint16
}
type PacketOne struct {
 Packet
 MyField string
}
func Smth(packet Packet)

И мне нужно сделать что-то типу
Smth(PacketOne{})
,  но такое не компилируется, ибо не тот тип
А должно?
источник

АП

Александр Попов... in Go-go!
или меня уже плющит
источник

E

Edgar in Go-go!
Александр Попов
чем то
var ch chan int
от
ch := make(chan int)
отличается?
В первом ты не проинициилизировал канал?
источник

Н

Никита in Go-go!
Yevhenii
Code с большой. Во пример того, что нужно

type Packet struct {
 Code    uint16
}
type PacketOne struct {
 Packet
 MyField string
}
func Smth(packet Packet)

И мне нужно сделать что-то типу
Smth(PacketOne{})
,  но такое не компилируется, ибо не тот тип
Надо делать интерфейс с общим методом
источник

АП

Александр Попов... in Go-go!
Edgar
В первом ты не проинициилизировал канал?
нет
источник

E

Edgar in Go-go!
Да
источник

АП

Александр Попов... in Go-go!
блин, я не про иницилизировал
источник

E

Edgar in Go-go!
В первом случае у тебя в ch будет nil
источник

AM

Askold Monarkhov in Go-go!
Daniel Podolsky
это встраивание

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

Y

Yevhenii in Go-go!
Никита
Надо делать интерфейс с общим методом
Типу GetCode()?
источник

АП

Александр Попов... in Go-go!
Edgar
В первом случае у тебя в ch будет nil
хм, мне казалось что chan не дает nil
источник

АП

Александр Попов... in Go-go!
а пустой канал просто будет
источник

АП

Александр Попов... in Go-go!
автоматически (но не буферизированный)
источник

E

Edgar in Go-go!
В плане? Канал это ссылочный тип
источник

SP

Slava Pinchuk in Go-go!
Александр Попов
хм, мне казалось что chan не дает nil
если канал закрыт и считать с него значение то будет значение по умолчанию а не нил
источник

Н

Никита in Go-go!
Yevhenii
Типу GetCode()?
Да любой метод, просто чтобы устраивало интерфейсу
источник

АП

Александр Попов... in Go-go!
Slava Pinchuk
если канал закрыт и считать с него значение то будет значение по умолчанию а не нил
мы не говорим про закрытый канал
источник

АП

Александр Попов... in Go-go!
мы говорим про не иницализированный
источник

АП

Александр Попов... in Go-go!
если бы var ch chan int давал nil, то он бы не блокировал все
источник

АП

Александр Попов... in Go-go!
var ch chan int
go func() {
 ch <- 1
}()
time.Sleep(time.Second * 5)
fmt.Println(<- ch)
источник