سؤال

ماذا تعني كلمة "حرفي" عند استخدامها في سياق مثل السلاسل الحرفية والقيم الحرفية؟

ما الفرق بين القيمة الحرفية والقيمة؟

هل كانت مفيدة؟

المحلول

الحرفي هو "أي تدوين لـ يمثل قيمة ضمن كود المصدر" (ويكيبيديا)

(قارن هذا ب معرفات, ، أيّ يشير إلى إلى قيمة في الذاكرة.)

أمثلة:

  • "hey" (سلسلة)
  • false (منطقي)
  • 3.14 (عدد حقيقي)
  • [1,2,3] (قائمة الأرقام)
  • (x) => x*x (وظيفة)
  • /^1?$|^(11+?)\1+$/ (التعبير العادي)

بعض الأشياء التي ليست حرفية:

  • std::cout (معرف)
  • foo = 0; (تصريح)
  • 1+2 (تعبير)

نصائح أخرى

وحرفي هو القيمة التي تم الثابت تلوينها مباشرة إلى المصدر.

وعلى سبيل المثال:

string x = "This is a literal";
int y = 2; // so is 2, but not y
int z = y + 4; // y and z are not literals, but 4 is
int a = 1 + 2; // 1 + 2 is not a literal (it is an expression), but 1 and 2 considered separately are literals

وبعض حرفية يمكن أن يكون لها تركيب خاص، حتى تعرف ما اكتب الحرفي هو:

//The 'M' in 10000000M means this is a decimal value, rather than int or double.
var accountBalance = 10000000M; 

ما يفرقهم من المتغيرات أو الموارد هو أن المترجم أن يعاملهم الثوابت أو تنفيذ بعض التحسينات مع التعليمات البرمجية حيث يتم استخدامها، لأنه من المؤكد أنهم لن تتغير.

وحرفي هو واجب إلى قيمة صريحة، مثل

int i = 4;  // i is assigned the literal value of '4'
int j = i   // j is assigned the value of i.  Since i is a variable,  
            //it can change and is not a 'literal'

وتحرير: وكما أشار، وتعيين نفسه له علاقة مع تعريف الحرفي شيء، كنت تستخدم التعيين في بلدي على سبيل المثال، ولكن حرفي ويمكن أيضا أن تنتقل إلى أسلوب وغيرها

وحرفي هو عند تضمين القيمة في شفرة المصدر (بدلا من الرجوع إلى متغير أو ثابت). على سبيل المثال:

int result = a + 5; // a is a variable with a value, 5 is a literal

string name = "Jeff Atwood"; // name is a variable initialized
                             // with the string literal, "Jeff Atwood"

int[] array = new int[] {1, 2, 3}; // C# has array literals (this is actually three
                                   // int literals within an array literal)

إذا الحرفي يمثل بعض كمية، مثل ثابت البدني، فإنه من الأفضل أن تعطيه اسما بدلا من كتابة نفس الحرفي في كل مكان كنت في حاجة إليها. وبهذه الطريقة، عندما كنت تقرأ شفرة المصدر، وانت تعرف ما عدد <م> يعني ، التي عادة ما تكون أكثر أهمية من قيمته (والتي يمكن أن تغير أي حال).

const int maxUsers = 100;
const double gravitationalAcceleration = 9.8;

وعموما، فإن حرفية رقمية الوحيدة التي يمكنني استخدام (إلى جانب لتهيئة الثوابت مثل أعلاه) هي 0 أو 1، وأحيانا 2 إذا أنا تخطي كل عنصر آخر في حلقة. إذا كان <م> يعني العدد هو أكثر أهمية من التي فعلية <م> قيمة (فإنه عادة ما يكون)، على نحو أفضل لتسميته.

وقيمة حرفية <م> هو قيمة، ولكن يمكن أيضا تخزين قيمة في متغير. في بيان

string str = "string literal";

وهناك متغير سلسلة (شارع) وسلسلة حرفية. بعد تنفيذ بيان ديهما نفس القيمة.

كن على علم أنه في كثير من اللغات المتغير وقيمة حرفية ليس بالضرورة بل يجب أن تكون من نفس النوع. على سبيل المثال:

int a = 1.0;

وقيمة حرفية أعلاه هو نوع النقطة العائمة. سيتم بالإكراه القيمة بواسطة مترجم لتناسب متغير كثافة العمليات.

لمثال آخر، في السطر الأول من رمز C ++ فوق نوع من سلسلة حرفية ليست في الواقع نوع مكتبة string على الإطلاق. للحفاظ على التوافق مع C، سلسلة حرفية في C ++ هي صفائف شار.

مثال سريع:

int my_int_var = 723;

723 - تشير هذه المجموعة من الأحرف إلى أ حرفي قيمة عدد صحيح.

my_int_var - تشير مجموعة الأحرف هذه إلى ملف عامل قيمة عدد صحيح.

وحرفي هو عند وضعه في التعليمات البرمجية. لذلك سلسلة حرفية هو

string s = "SomeText";

وهذا هو بدلا من بناء سلسلة، أو الاستيلاء عليها في كمعلمة.

وعموما عندما يستخدم شخص ما كلمة الحرفي أنها تعني القيمة التكهن بأفعاله من التعليمات البرمجية (النص) كما هو مبين في العديد من الأمثلة في وظائف أخرى.

والاستعمال الشائع الآخر هو للقيم التي يتم تحويلها إلى قيم الفورية في التجمع. وهذه هي القيم التي يتم إدراجها مباشرة في تعليمات الجهاز بدلا من مطالبة الأحمال السجل.

لقد سمعت سلسلة حرفية تستخدم عرضًا للإشارة إلى ما مواصفات لغة C# يشير في الواقع إلى سلسلة حرفية حرفية.تسمح السلسلة الحرفية العادية بالهروب من أحرف معينة (مسبوقة بـ )، مثل لعلامة التبويب.يتم إضافة السلسلة الحرفية حرفيًا بواسطة @ وتتم معالجتها حرفيًا، وليس لها معنى خاص.

//regular
string regular = "\thello world";
//verbatim
string verbatim = @"C:\";
//the regular equivalent of this would be "C:\\"

وA الحرفي هو "كود التمثيل مصدر البيانات".

والحرفية هي تدوين المختصر لالقيم في أنواع معينة تعتبرها لغة مهمة جدا أو الأساسية التي كرست جملة السكر فقط بالنسبة لهم.

ومثال على أنواع التي غالبا ما يمثله الحرفية القيم:

Boolean = { true, false }
Integer = { ..., -2, -1, 0, 1, 2, ... }
Character = { 'a', 'b', ... }
String = { "hello", "world", ... }

حتى من أجل وظيفة أنواع:

Integer -> Integer = { (x: Integer) => x + 2), (x: Integer) => x/2, ...}

ومثال على القيم التي عادة ما تكون غير ممثلة مع الحرفية ستكون قيم أنواع الفئة:

Car(brand: String, seats: Integer) = { Car("BMW", 5), Car("Ferrari", 2), ...}

وهنا Car("BMW", 5) قيمة في نوع من Car الواقع هو الرمز فريد باستخدام سلسلة من الرموز، ومع ذلك، لا يمثل القيمة باستخدام اختزال مخصص الحرفي، ولكن بدلا من ذلك يستخدم عموما آليات الاسمية (مطول) لتدل على القيم من أي نوع فئة .

ومصطلح <م> الحرفي مرادف حيث <م> قيمة ، <م> المثال ، عضو <م> ثابت ، <م> و <م> العنصر من نوع، ولكن يحمل قليلا من المعنى الإضافي الذي يخبرنا أن هناك اختصار لكتابته.

وأود أن نفكر الحرفية مع الكتابة الهيروغليفية المصرية بدلا من التوتير معا حرفا من الحروف الأبجدية من أجل التعبير عن مفهوم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top