Co je definice typu?

Při čtení o datových typech se často používá definice typu bez jakéhokoli předchozího vysvětlení toho, co to znamená.

Například v https://en.wikipedia.org/wiki/Type_system máme větu „… protože C ++ má silnější pravidla týkající se definice typů …“

Jakákoli pomoc s vyjasněním jaké jsou rozdíly mezi, například typ a definice typu je velmi ceněn!

Komentáře

  • Víte, co je typ ? Potom je definice typu , jak tento termín naznačuje, definicí typu. ' nejsem si jistý, jaké jsou vaše skutečné otázky.

Odpovědět

„Definování“ typu je akt vytváření nového typu složeného z jednoho nebo více již existujících datových typů. Například typ „Složité číslo“ je často deklarován jako uspořádaná dvojice „Skutečných čísel“:

Type Complex Real a Real b End 

a a b jsou skutečné a imaginární části .

Tento vzorek pseudokódu je „Definice typu“.

Komentáře

  • Nemám si nemyslím, že právě na to je ' žádáno … Definování abstraktního datového typu je samozřejmě definicí typu, ale nemá nic společného se silným nebo slabé psaní (část otázky)

Odpověď

Z „Programovacího jazyka C ++“ – od Bjarna Stroustrup, tvůrce C ++.

Typ definuje sadu možných hodnot a sadu operací (pro objekt).

Také následující definice jsou ve vzájemném vztahu s typem převzatým ze stejné knihy

Deklarace je prohlášení který do programu zavádí název. Určuje a typ pro pojmenovanou entitu

Objekt je paměť, která obsahuje hodnotu nějakého typu.

Hodnota je sada bitů interpretovaných podle typu.

Proměnná je pojmenovaný objekt.

Komentáře

  • To není ' nezmínit definici typu .

odpověď

Proměnné mohou obsahovat různé druhy hodnot, např. Celá čísla, reálné hodnoty, znaky … Tomu se říká TYP proměnné. Některé jazyky se zadávají dynamicky. To znamená, že tlumočník nebo překladač rozhoduje o typu proměnné za vás. V jazycích se statickým typem musíte při deklaraci proměnné definovat typ sami. Toto je DEFINICE TYPU.

V silně zadaných statických jazycích pravidla zakazují kombinovat různé typy. pokud chcete přidat např. reálné a celé číslo, musíte explicitně uvést celé číslo na skutečné.

ve slabém jazyce můžete kombinovat typy. ale protože se bitové vzory nízké úrovně u různých typů liší, můžete mít nežádoucí výsledky.

Většina jazyků je mezi nimi. Bude jasné, že nežádoucí účinky nejsou přijatelné, zatímco potřeba explicitního obsazení činí kód těžkým. Většina překladačů tedy provede implicitní obsazení pro některé standardní operace. Přidání reálného a celého čísla v tom případě implicitně vyvolá seslání do reálného.

Komentáře

  • Co je " pe " ? Rovněž nechápu, jak se otázky týká to, co jste ' napsali po prvním odstavci.
  • @ David: pe = exempli gratia = Kvůli příkladu = například … Věta " … protože C ++ má přísnější pravidla týkající se definic typů … " podle mého názoru ukazuje, že otázka je kladena v kontextu slabého a silného psaní.
  • Aha – že ' s " např. ", v angličtině – upraveno.
  • skutečně je. moje chyba.
  • Tato odpověď ukazuje řadu vážných nedorozumění typů a typových systémů. Prakticky každá věta této odpovědi je nesprávná, matoucí nebo zavádějící. Systémy pro psaní nejdou jen o proměnné: 3+'a' neobsahuje ' žádné proměnné, ale bude zkontrolován. Dynamicky " zadané " jazykové implementace don ' t " rozhodnout " typ čehokoli. Implicitní převody nedělají ' jazyk více " dynamicky " nebo " slabě " zadaný.Obecně statické a dynamické " psaní " nejsou opačnými konci spektra, ale prostě mluví úplně o různých věcech.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *