Դաս 7 – Objective-C։ Հաստատուներ (Constants)

0

Constant-ը այն անփոփոխ արժեքն է, որից ծրագիրը իրականացման ընթացքում չի կարող շեղվել: Այդպիսի ֆիքսված արժեքները կոչվում են նաև  literal-ներ:

Constant-ները կարող են լինել ցանկացած հիմնական data type-ի, ինչպես օրինակ՝  integer constant,  floating constant, character constant, կամ string literal: Լինում են նաև enumeration constant-ներ:

Constant-ների հետ աշխատում են ինչպես որ սովորական փոփոպականների հետ, այն բացառությամբ, որ դրանց արժեքները չեն կարող փոփոխվել սահմանումից հետո:

Integer literal-ներ

integer literal-ը կարող է լինել decimal, octal, կամ hexadecimal constant:

integer literal-ը կարող է ունենալ նաև վերջածանց, որը U և L տառերի համադրությունն է, համապատասխանաբար, unsigned-ի և long-ի համար: Վերջածանցը կարող է լինել փոքրատառերով և մեծատառերով և ունենալ ցանկացած դասավորություն:

Ահա integer literal-ների մի քանի օրինակներ՝

212         /* Legal */
215u        /* Legal */
0xFeeL      /* Legal */
078         /* Illegal: 8 is not an octal digit */
032UU       /* Illegal: cannot repeat a suffix */

Ստորև ներկայացված են Integer literal-ների տարբեր տիպերի օրինակներ՝

85         /* decimal */
0213       /* octal */
0x4b       /* hexadecimal */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */

Floating-point literal-ներ

floating-point literal-ը ունի integer մասնիկ, decimal point, fractional մասնիկ, և exponent մասնիկ: floating point literal-ները կարող են ներկայացվել decimal կամ exponential form-երով:

decimal form-ով ներկայացնելիս պետք է ներառեք decimal point-ը, exponent-ը, կամ երկուսն էլ միասին: exponential form-ը ներկայացնելիս՝ integer մասը, fractional մասը կամ երկուս էլ: signed exponent-ը ներկայացվում է e-ով կամ  E-ով:

Ահա floating-point literal-ների մի քանի օրինակներ՝

3.14159       /* Legal */
314159E-5L    /* Legal */
510E          /* Illegal: incomplete exponent */
210f          /* Illegal: no decimal or exponent */
.e55          /* Illegal: missing integer or fraction */

Character constant-ներ

Character literal-ները դրվում են are չակերտների մեջ, օրինակ՝ ‘x’ և կարող են տեղակայվել char type-ի սովորական փոփոխականի մեջ:

character literal-ը կարող է լինել հասարակ character (օրինակ՝ ‘x’), escape sequence (օրինակ՝ ‘\t’), կամ universal character (օրինակ՝ ‘\u02C0’):

Կան որոշ character-ներ, որոնց  հաջորդում է backslash և դրանք ստանում են այլ իմաստ ու կիրառվում են newline (\n) կամ tab (\t) ներկայացնելու համար: Ահա այդպիսի escape sequence կոդերի օրինակներ՝

Escape sequence նշանակություն
\\ \ character
\’ ‘ character
\” ” character
\? ? character
\a Alert or bell
\b Backspace
\f Form feed
\n Newline
\r Carriage return
\t Horizontal tab
\v Vertical tab
\ooo Octal number of one to three digits
\xhh . . . Hexadecimal number of one or more digits

Ահա escape sequence character-ների օրինակներ՝

#import <Foundation/Foundation.h>

int main()
{
   NSLog(@"Hello\tWorld\n\n");

   return 0;
}

Վերոնշյալլ կոդը կոմպիլացիայի ենթարկվելուց և իրականցվելուց հետո տալիս է հետևյալ արդյունքը՝

2013-09-07 22:17:17.923 demo[17871] Hello	World

String literal-ներ

String literal-ները կամ constant-ները դրվում են կրկնակի չակերտների մեջ՝ “”: string-ը պարունակում է character-ներ, որոնք նման են character literal-ներին՝ plain character-ներ, escape sequence-ներ, և universal character-ներ:

You can break a long line into multiple lines using string literals and separating them using whitespaces. Դուք կարող եք երկար տողը բաժանել մասերի string literal-ների և  whitespace-երի միջոցով:

Ահա string literal-ների մի քանի օրինակ (բոլոր երեքն էլ identical string-եր են)՝

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

Constant-ների սահմանումը

Կոնստանտների սահմանման համար կա երկու տարբերակ՝

  1. #definepreprocessor-ի միջոցով
  2. constkeyword-ի միջոցով

#define Preprocessor

Ահա թե ինչպես է պետք օգտագործել #define preprocessor-ը constant-ը սահմանելու համար՝

#define identifier value

Այս օրինակը դրա մանրամասն բացատրություն է՝

#import <Foundation/Foundation.h>

#define LENGTH 10   
#define WIDTH  5
#define NEWLINE '\n'

int main()
{

   int area;  
  
   area = LENGTH * WIDTH;
   NSLog(@"value of area : %d", area);
   NSLog(@"%c", NEWLINE);

   return 0;
}

Երբ վերոնշյալ կոդը կոմպիլացվում և իրականցվում է, ստացվում է հետևյալ արդյունքը՝

2013-09-07 22:18:16.637 demo[21460] value of area : 50
2013-09-07 22:18:16.638 demo[21460]

const Keyword

Դուք կարող եք օգտագործել const նախածանցը constant /հաստատուններ/  հայտարարելու համար:

const type variable = value;

Հետևյալ օրինակը դրա մանրամասն բացատրությունն է՝

#import <Foundation/Foundation.h>

int main()
{
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';
   int area;  
   
   area = LENGTH * WIDTH;
   NSLog(@"value of area : %d", area);
   NSLog(@"%c", NEWLINE);

   return 0;
}

Երբ վերոնշյալ կոդը կոմպիլացվում և իրականցվում է, ստացվում է հետևյալ արդյունքը՝

2013-09-07 22:19:24.780 demo[25621] value of area : 50
2013-09-07 22:19:24.781 demo[25621]

Նկատի ունեցեք, որ ցանկալի է որպեսզի constant-ները սահմանվեն ՄԵԾԱՏԱՌԵՐՈՎ:

Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.