From Wikipedia, the free encyclopedia
Типът на данните (на английски: data type) е концепция в езиците за програмиране, с която се описва видът на променливата, какви стойности може да приема, както и множеството от операции, които могат да се прилагат върху нея. Типът е вид класификация на данните, която указва на компилатора или интерпретатора как програмистът има намерение да използва данните. Например процесът на събиране на две променливи, както и резултатът от събирането варират в зависимост от типа данни: цели числа, числа с плаваща запетая, низове.[1]
Типовете данни представляват множества (диапазони) от стойности, които имат еднакви характеристики:
byte
, int
, string
, int[]
, List
.Никлаус Вирт (създателят на Паскал) класифицира типовете данни, като:
Примитивните типове данни (built-in types) са основните типове в един език за програмиране. Те са вградени в него на най-ниско ниво и за тях има вградена поддръжка в езика. В повечето езици за програмиране всички базови типове са вградени. Вградените типове данни се обработват от компютъра най-бързо, тъй като за работа с тях има машинни инструкции, които ги обработват директно. Повечето езици не дават възможност за модифициране на простите типове от програмистите. Комплексните типове данни се създават от основните типове.
Примитивните типове данни в различните езици имат директно съответствие с типове от общата система от типове (CTS) от .NET Framework. Благодарение на това, може да има и съвместимост между езиците за програмиране.
Типовете се разделят на стойностни типове – такива, които пазят данните директно в себе си, т.е. в своята стойност в стека на програмата, и референтни типове – представляват референции, указващи мястото на данните в паметта, т.е. пазят като стойност адрес, област от динамичната памет, където е записана стойността им.
Размерът при стойностните типове е предварително фиксиран. Обратното е при референтите типове – те могат да се заделят и освобождават динамично.
Стойностни типове са примитивните типове, изброените типове ( enum
) и структурите ( struct
). Всички стойностни типове са наследници на класа System.ValueType.
Референтни типове са всички наследници на System.Object, който не наследяват ValueType: класовете( class
), интерфейсите( interface
), масивите и делегатите( delegate void
).
Можем да декларираме референтна променлива без да извършим присвояване на стойност. Тогава тя получава стойност Null
. Null е специална константа, с която се обозначават референтни променливи, които не сочат към никакви данни.
object x;
Прехвърлянето на стойностни типове в динамичната памет и обратно се нарича опаковане, а обратното действие разопаковане. При опаковане CLR средата автоматично създава обвиващ клас (wrapper), който е референтен тип, но съдържа стойностен тип в себе си.
Опаковането е автоматично, когато на референтен тип присвоим стойностен тип. Разопаковането не става автоматично, а трябва да бъде изрично указано и трябва да бъде посочен и искания тип.
Опаковане:
int number = 5; object numberToObject = number;
Разопаковане:
int number = 0; number = (int) numberToObject;
Примитивни типове данни в език C Sharp са:
Име на типа | Деклариране |
---|---|
целочислени типове | sbyte, byte, short, ushort, int, uint, long, ulong |
реални типове с плаваща запетая | float, double |
реални типове с десетична стойност | decimal |
булев тип | bool |
символен тип | char |
низов тип | string |
обектен тип | object |
С изключение string
и object
типове данни, които са референтни, всички останали Примитивни типове данни в C Sharp са стойностни.
Име | Размер в паметта | Стойност по подразбиране |
Минимална стойност | Максимална стойност |
---|---|---|---|---|
sbyte |
8 bits | 0 | -128 (-) | 127 (- – 1) |
byte |
8 bits | 0 | 0 | 255 ( – 1) |
short |
16 bits | 0 | -32 768 (- – 1) | 32 767 () |
ushort |
16 bits | 0 | 0 | 65 535 ( – 1) |
int |
32 bits | 0 | -2 147 483 648 (-) | 2 147 483 647 ( – 1) |
uint |
32 bits | 0u или 0U |
0 | 4 294 967 295 ( – 1) |
long |
64 bits | 0l или 0L |
-9 223 372 036 854 775 808 (-) | 9 223 372 036 854 775 807 ( – 1) |
ulong |
64 bits | 0l или 0L |
0 | 18 446 744 073 709 551 615 ( – 1) |
float |
32 bits | 0.0f или 0.0F |
±1.5 × | ±3.4 × |
double |
64 bits | 0.0d или 0.0D |
±5.0 × | ±1.7 × |
decimal |
128 bits | 0.0m или 0.0M |
-7.9 × | +7.9 × |
bool |
4 bits | false |
само две възможности: true или false | |
char |
16 bits | ‘\u0000′ | 0 или ‘\u0000′ | 65535 или ‘\uffff’ |
object |
- | null | - | - |
string |
- | null | - | - |
Тези типове данни се дефинират от потребителя, като се ползват примитивни типове и вече дефинирани непримитивни типове. Има и непримитивни типове данни, които са вградени в езиците за програмиране. Такива са например: string, List<>, DateTime и др. Непримитивни типове данни се създават като класове или структури.
Класът дефинира абстрактните характеристики на даден обект. Той е план или шаблон, чрез който се описва природата на нещо.
Обектите – инстанции на класовете.
Класовете в C# съдържат:
Структурите в C# са много подобни на класовете. Разликата е в типа на обектите. Структурите са потребителски дефинирани стойностни типове. Когато обекта няма поведение се използва структура. Те, както и класовете, могат да съдържат полета и свойства, но не се препоръчва да съдържат методи.
Тъй като javascript се интерпретира, той има допълнително предимство да е слабо типизиран. Това означава, че не е необходимо една променлива да се декларира явно като един от вградените JavaScript типове: var c; // декларация на променлива без да се определя нейния тип;
В езика Java Script всички типове данни се декларират с променливата var
. Всеки тип в Java Script има няколко на брой стойности, които може да приема и те зависят от фактори, като това на каква машина сме, дали операционната система, която се използва е 32- или 64-битова, както и какъв ни е браузърът. Променливите могат свободно да преминават от един тип в друг, т.е. една променлива може да взима всякакви стойности.
var counter = 5;
counter = "Gosho" //- това е валидно.
Име на типа | Деклариране | Особености |
---|---|---|
Числов тип | var |
целочислен тип Integer . Стойности от -9007199254740992 до 9007199254740992; Реален тип със запетая – има неточност при смятането както и реалните типовете с плаваща запетая в С#. |
Булев тип | var |
само 2 стойности – true или false |
низов тип | var |
За ограждането на низ може да се използват както двойни, така и единични кавички |
var str1 = "string";
var str2 = 'string';
Променливата var
в Java Script съответства на променливата dynamic
в C#.
Нямаме прехвърляне на типове: 1 + Integer Max Value = Integer Max Value.
Масивът спомага за съхранението на сходни данни по логически начин.
Функцията е обособена част от изпълним код, който е написан веднъж, но се извиква нееднократно от различни места в програмата.
Всичко в JavaScript е обект. Един обект представлява съвкупност от данни и функции, които работят заедно за изпълнението на свързана задача.
Те са null, undefined и NaN.
Null
– Променливата няма стойност.Undefined
– Означава, че променливата не е била предварително дефинирана.NaN
– Not-a-Number се използва, за да се отбележи, че стойността не е валидно число.В C съществуват няколко основни типа данни:
Char
– един байт; може да съдържа един символ от локалната кодова таблица.Int
– цяло число; обикновено отразява естествената големина на целите числа на хоста.Float
– число с плаваща запетая и единична точност.Double
– число с плаваща запетая и двойна точност.Към типа int могат да бъдат приложени определенията short и long.
Short и int числата трябва да са поне 16 бита. Short не трябва да бъде по-дълго от int. Long числата са поне 32 бита и са по-дълги от int.
type arrayName [ arraySize ];
Union
е специален тип данни в C, който позволява да се съхраняват различни типове данни на една и съща позиция в паметта. Може да се дефинира union с много членове, но само един член може да има стойност в даден момент. Осигурява се ефективен начин за използване на място в паметта.Специален тип void
показва, че не е налична стойност.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.