Latest web development tutorials

الذهاب المتغيرات اللغوية

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

تتكون الذهاب لغة أسماء المتغيرات من الحروف والأرقام، يؤكد، والتي من الحرف الأول ليست رقمية.

يتم تعريف الشكل العام للمتغير باستخدام الكلمة فار:

var identifier type

تعريف متغير

أولا، تحديد نوع المتغير، وإعلان إذا كان التخصيص، استخدام الافتراضي.

var v_name v_type
v_name = value

والثاني، استنادا إلى قيمة تقرير المصير أنواع متغير.

var v_name = value

الثالثة، وحذف فار، ملاحظة: متغير = لا يجب أن تعلن اليسار في مكان، وإلا فإنه سوف يؤدي إلى خطأ المترجم.

v_name := value

// 例如
var a int = 10
var b = 10
c : = 10

ومن الأمثلة على ذلك ما يلي:

package main
var a = "w3cschool本教程"
var b string = "w3cschool.cc"
var c bool

func main(){
    println(a, b, c)
}

الأمثلة أعلاه تنفيذ النتائج:

w3cschool本教程 w3cschool.cc false

إعلان متعدد المتغيرات

//类型相同多个变量, 非全局变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3

var vname1, vname2, vname3 = v1, v2, v3 //和python很像,不需要显示声明类型,自动推断

vname1, vname2, vname3 := v1, v2, v3 //出现在:=左侧的变量不应该是已经被声明过的,否则会导致编译错误


// 这种因式分解关键字的写法一般用于声明全局变量
var (
    vname1 v_type1
    vname2 v_type2
)

ومن الأمثلة على ذلك ما يلي:

package main

var x, y int
var (  // 这种因式分解关键字的写法一般用于声明全局变量
    a int
    b bool
)

var c, d int = 1, 2
var e, f = 123, "hello"

//这种不带声明格式的只能在函数体中出现
//g, h := 123, "hello"

func main(){
    g, h := 123, "hello"
    println(x, y, a, b, c, d, e, f, g, h)
}

الأمثلة أعلاه تنفيذ النتائج:

0 0 0 false 1 2 123 hello 123 hello

قيمة وأنواع مرجع

جميع مثل كثافة، تطفو، منطقي وسلسلة هذه الأنواع الأساسية هي جميع أنواع القيمة، وذلك باستخدام هذا النوع من المتغيرات مباشرة إلى القيمة المخزنة في الذاكرة:

عند استخدام علامة المساواة = عندما يتم تعيين قيمة متغير متغير آخر، مثل: j = i ، هو في الواقع قيمة الذاكرة وسوف أكون نسخة من:

يمكنك الحصول على عنوان الذاكرة المتغير I & I، على سبيل المثال: 0xf840000040 (كل عنوان قد تكون مختلفة). القيمة المخزنة نوع قيمة المتغير على المكدس.

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

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

وهناك نوع إشارة متغير R1 R1 هو القيمة المخزنة في عنوان الذاكرة حيث يقع (رقمي)، أو الموقف من عنوان الذاكرة من الكلمة الأولى.

ويسمى عنوان الذاكرة مؤشر التي كانت في الواقع هناك كلمة واحدة أخرى.

مع الإشارة إلى عدد وافر من أنواع كلمة المؤشر قد يكون في عناوين الذاكرة القريبة (تخطيط الذاكرة مستمر)، وهو حساب الشكل الأكثر كفاءة للتخزين، وهذه يمكن أيضا أن تكون مخزنة في ذاكرة الكلمات المتناثرة، كل كلمة تدل حيث المقبل عنوان كلمة الذاكرة.

عندما يتم نسخ R2 عبارة تعيين = R1، إلا إشارات (العنوان).

إذا تم تغيير قيمة R1، سيتم تعديل ثم قيمة كل الاستشهادات إلى نقطة، في هذه الحالة، R2 أيضا أن تتأثر.


شكل قصيرة، استخدام: = عامل التعيين

ونحن نعلم أن لك أن نستنتج تلقائيا تتم تهيئة نوع متغير بواسطة تم حذف متغير النظام، وبيان مكتوب على الكلمة إعلان فار هو في الواقع زائدة قليلا، ولذا فإننا يمكن أن يختصر بها باعتبارها: = 50 أو ب: = كاذبة.

ووأنواع باء (int و منطقي) سيتم استخلاصه مترجم تلقائيا.

هذا هو الشكل المفضل للاستخدام المتغيرات، ولكن يمكن استخدامه فقط في الجسم وظيفة، فإنه لا يمكن أن تستخدم لنعلن مع الاحالة إلى المتغيرات العالمية. استخدام مشغلي: يمكن = خلق بكفاءة متغير جديد يسمى بيان التهيئة.

الاحتياطات

إذا كان نفس الكتلة من التعليمات البرمجية، ونحن لا يمكن إعادة استخدام نفس الاسم لبيان التهيئة متغير، على سبيل المثال: ج: لا يتم السماح = 20، فإن المترجم عرض خطأ لا متغيرات جديدة على الجانب الأيسر من: =، ولكن = 20 غير ممكن، لأنها ليتم تعيين نفس المتغير قيمة جديدة.

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

إذا قمت بتعريف متغير محلي، ولكنها لا تستخدم في نفس الكتلة من التعليمات البرمجية في ذلك، سوف تحصل على خطأ ترجمة، مثل المثال التالي الذي المتغير:

func main() {
   var a string = "abc"
   fmt.Println("hello, world")
}

محاولة ترجمة هذا الرمز سوف تحصل على خطأمعلنة وعدم استخدامها.

وبالإضافة إلى ذلك، لإعطاء مهمة بسيطة ليست كافية، ويجب استخدام هذه القيمة، لذلك استخدام

fmt.Println("hello, world", a)

وسوف إزالة الأخطاء.

ولكن المتغيرات العالمية وأعلن لكن لا يسمح للاستخدام.

>

يمكن تعريف المتغيرات متعددة من نفس النوع على نفس الخط، مثل:

var a, b, c int

يمكن تعيين أكثر من المتغيرات على نفس الخط، مثل:

a, b, c = 5, 7, "abc"

يفترض سطر أعلاه أن المتغيرات A و B و C قد أعلنت، وإلا فإنه ينبغي أن تستخدم هذه الطريقة:

a, b, c := 5, 7, "abc"

هذه القيم على اليمين في نفس الترتيب المخصصة لمتغير على اليسار، بحيث كانت قيمة 5، ب قيمة تقدر ب 7، وقيمة ج هي "اي بي سي".

وتسمى هذه المهمة موازية أو في وقت واحد.

إذا كنت ترغب في مبادلة قيم متغيرين، يمكنك ببساطة استخدام أ، ب = ب، أ.

معرف فارغ يستخدم _ أيضا القيم التخلص منها، مثل قيمة 5: _، ب = 5، تم التخلي عن 7.

_ في الواقع متغير والكتابة فقط، لا يمكنك الحصول على قيمتها. العودة القيام بذلك لأنه يتم الإعلان عن اللغة التي يجب أن تستخدم كل المتغيرات، ولكن في بعض الأحيان لا تحتاج إلى استخدام كل القيم المرجعة من وظيفة التي تم الحصول عليها.

يستخدم المهمة مواز أيضا بوصفها وظيفة إرجاع القيم متعددة المقابل، مثل فال ويخطئ خطأ هنا يتم الحصول عليها في وقت واحد من خلال الدعوة وظيفة Func1: فال، يخطئ = Func1 (VAR1).