type versus data type rubrika: Programování: Jiné
Ahoj.
Při čtení https://en.wikipedia.org/wiki/First-class_citizen jsem narazil na rozlišení "first-class type" a "first-class data type". Nic moc jsem o tom dál nedočetl. Můžete mi vysvětlit jaký je v tom rozdíl? A jaký je vlastně rozdíl mezi "type" versus "data type"?
Díky.
String, Integer, Enum, List je datový typ - protože obsahuje nějakou hodnotu.
Stringable, Enumerate, Countable je obecný typ, protože sám o sobě nenese datovou informaci. V případě toho, co známe u Javy, C# jako rozhraní je to jen nálepka pomáhající typovému systému dodržet záruky. Třeba dostupnost funkcí/metod pro nějaký datový typ.
(Ale taky v tom trochu plavu.)
First-class type pak znamená, zda je možné s těmi manipulovat jako s hodnotami (zjednodušeně). Třeba kdyby šlo u Pythonu toto (něco jde, něco je jen popis; Python stejně typy nemá):
def select_type(session): if session = ...: return Int else: return Float def create_object(session): t = select_type(session) klass = class MyClass(t): def __init__(self, a, b): ... cls = create_object(session) m = cls(1, 2)
Pro zobrazení všech 4 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem: