Mi a típusmeghatározás?

Az adattípusokról olvasva a “típusdefiníciót” gyakran használják előzetes magyarázat nélkül annak jelentésére.

Például A https://en.wikipedia.org/wiki/Type_system részben a “… mivel a C ++ -nak erősebb szabályai vannak a típusdefiníciók …”

Bármi segítséget nyújt annak tisztázásában, hogy mi a különbség például a type és a típusdefiníció t nagyra értékeljük!

Megjegyzések

  • Tudja, mi az a típus ? Ezután egy típusdefiníció , amint azt a kifejezés sugallja, egy típus meghatározása. ' nem vagyok benne biztos, hogy mi a valódi kérdése.

Válasz

A típus “meghatározása” egy új típus felépítése, amely egy vagy több már létező adattípusból áll. Például a “Komplex szám” típust gyakran “Valódi számok” rendezett párjaként deklarálják:

Type Complex Real a Real b End 

a és b a valós és képzelt részek .

Ez az álkódminta egy “Típusdefiníció”.

Megjegyzések

  • Nem ' nem gondolja, hogy ezt kérik ' től … Az absztrakt adattípus meghatározása természetesen típusdefiníció, de semmi köze az erőshez vagy gyenge gépelés (a kérdés része)

Válasz

“A C ++ programozási nyelvből” – írta Bjarne Stroustrup a C ++ készítőjének.

A típus meghatározza a lehetséges értékek és a műveletek halmazát (egy objektumhoz).

A következő definíciók is összefüggenek az ugyanabból a könyvből vett típusokkal

A deklaráció egy utasítás amely nevet vezet be a programba. Megadja a a megnevezett entitás típusa

Az objektum olyan memória, amely valamilyen típusú értéket tartalmaz.

Az érték egy típus szerint értelmezett bitkészlet.

A változó megnevezett objektum

Megjegyzések

  • Ez nem ' nem említi a típusmeghatározást .

Válasz

A változók különböző típusú értékeket tartalmazhatnak, például egész számokat, valós értékeket, karaktereket … Ezt nevezzük a változó TÍPUSÁNAK. Egyes nyelveket dinamikusan gépelnek. Ez azt jelenti, hogy a tolmács vagy a fordító dönti el helyetted a változó típusát. Statikus gépelt nyelveken a változó deklarálásakor magának kell meghatároznia a típust. Ez a TÍPUSMEGHATÁROZÁS.

Erősen tipizált statikus nyelvekben a szabályok tiltják a különböző típusok keverését. ha pl. valós és egész számot szeretne hozzáadni, akkor az egész számot kifejezetten valósra kell önteni.

gyenge gépelt nyelven típusokat keverhet. de mivel az alacsony szintű bitminták típusonként különböznek egymástól, nem kívánt eredményeket érhet el.

A legtöbb nyelv valahol a kettő között van. Világos lesz, hogy a nem kívánt hatások nem fogadhatók el, míg a kifejezett szereposztás szükségessége megnehezíti a kódot. Tehát a legtöbb fordító implicit cast-ot készít egyes szabványos műveletekhez. Valós és egész szám hozzáadása ebben az esetben implicit módon provokálni fogja a valóra váltást.

Megjegyzések

  • Mi az a " pe " ? Azt sem látom, hogy ' nem látom, hogy az első bekezdés után írt ' hogyan viszonyul a kérdéshez.
  • @ David: pe = exempli gratia = Például a = példa kedvéért … Az " … mondat … mivel a C ++ -nak erősebb szabályai vannak a típusdefiníciókkal kapcsolatban … " véleményem szerint megmutatja, hogy a kérdést gyenge és erős gépeléssel összefüggésben teszik fel.
  • Aha – hogy ' s " pl. ", angolul – szerkesztve.
  • valóban az. tévedésem.
  • Ez a válasz a típusok és típusrendszerek számos súlyos félreértését mutatja be. A válasz gyakorlatilag minden mondata helytelen, zavaró vagy félrevezető. Első lépésként a típusrendszerek nem csak a változókról szólnak: 3+'a' nem tartalmaz ' t, és nem tartalmaz változókat, hanem típusellenőrzésre kerülnek. Dinamikusan " beírt " nyelvű megvalósítások don ' t " döntse el " bármi típusát. Az implicit konverziók nem teszik a nyelvet dinamikusabban " dinamikusabbá " vagy " gyengén " gépelt.A statikus és dinamikus " gépelés " nem egy spektrum ellentétes vége, hanem egyszerűen teljesen más dolgokról beszélnek.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük