Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Gopher 07. 03. 2018, 20:18:55
-
Teoretický dotaz - je typ pole v Go závislostní? Překladač totiž neumožní přetypování na pole jiné délky, takže to vypadá jako Σ-typ, což ovšem jiné OO jazyky takto nemají a mě udivuje, proč se to v jinak extrémně pragmatickém Go vyskytuje.
-
Teoretický dotaz - je typ pole v Go závislostní? Překladač totiž neumožní přetypování na pole jiné délky, takže to vypadá jako Σ-typ, což ovšem jiné OO jazyky takto nemají a mě udivuje, proč se to v jinak extrémně pragmatickém Go vyskytuje.
Jj velikost pole je soucast typu int[5] je jiny typ nez int[6], v go neni pole reseno jako
v C ze ukazatel ukazuje na nulty prvek pole. V go ukazatel ukazuje na cele pole typu float[10]. Pole maji pevnou velikost az nad nimi jsou rezy s menitelnou velikosti.
-
Už jsem se lekl, že někdo hraje hru Go. ;D
https://cs.wikipedia.org/wiki/Go_(deskov%C3%A1_hra)
-
Teoretický dotaz - je typ pole v Go závislostní? Překladač totiž neumožní přetypování na pole jiné délky, takže to vypadá jako Σ-typ, což ovšem jiné OO jazyky takto nemají a mě udivuje, proč se to v jinak extrémně pragmatickém Go vyskytuje.
Jj velikost pole je soucast typu int[5] je jiny typ nez int[6], v go neni pole reseno jako
v C ze ukazatel ukazuje na nulty prvek pole. V go ukazatel ukazuje na cele pole typu float[10]. Pole maji pevnou velikost az nad nimi jsou rezy s menitelnou velikosti.
Formálně jde o závislostní typ, ale překladač neumožňuje s parametrem typového konstruktoru pracovat, takže vyšší bezpečnost se nekoná.
-
P.S. Jinak pole v Go jsou de facto hodnotové typy. Když mám céčkový ukazatel, musím ho přetypovat na *[N]typ, kde N je nějaké velké číslo (ideálně to největší přípustné, což ale závisí na architektuře). Z tohoto ukazatele pak jde udělat řez, kde už je velikost pole záležitostí doby běhu, ne překladu. Ono to je v Go vlastně vymyšlené velmi chytře a překladač používá pole s pevnou velikostí i skrytě právě u řezů, například při přidávání prvků, když je třeba alokovat větší pole.
-
Jenom pro doplneni, golang mai neco jako collections pro chude.
https://golang.org/pkg/container/