Velikost pole objektů v Go

Šáša

Re:Velikost pole objektů v Go
« Odpověď #15 kdy: 10. 04. 2018, 00:37:29 »
Tak tuhle terminologii neznám, ale budiž, vím, o co jde. Každopádně to má Go implementačně dobře vyřešené.

Dobře vyřešené to je, ale má to svá plus a mínus. Hlavní výhodou tohoto řešení je, že samotný objekt je čistá struct, proto se s ním dá dobře manipulovat i přes FFI, a navíc volání metod může být u každého objektu buď statické, nebo dynamické (kachní) podle typu reference. Nevýhodou je, že reference můžou být různě velké, jak to ostatně tady překvapilo OP. Například v Rustu bude &Calculon normální pointer, ale &Worker dvojice pointerů a &[Calculon] bude pointer + usize. V C++ je to jednodušší, každá reference je jediný pointer, ale zase musí být vtable (neboli __methods) přímo součástí objektu, takže tento se tím stává složitý a obtížně přístupný "zvenčí".
Proč se k tomu vyjadřuješ, když v tom sám neskutečně plaveš?