Latest web development tutorials

الذهاب ثابت لغة

قيمة ثابتة هي معرف بسيط، هو برنامج التشغيل، لن يتم تعديل المبلغ.

نوع البيانات المستمر يمكن أن يكون إلا منطقية، رقمية (عدد صحيح، النقطة العائمة والأعداد المركبة) وسلسلة.

الثوابت الشكل المحدد:

const identifier [type] = value

يمكنك حذف نوع محدد [نوع]، لأن المترجم يمكن استنتاج قيمة متغير نوعه.

  • صريح تعريف نوع: const b string = "abc"
  • ضمني تعريف نوع: const b = "abc"

إن تعددية نفس النوع من البيان يمكن اختصار على النحو التالي:

const c_name1, c_name2 = value1, value2

يوضح المثال التالي تطبيق الثوابت:

package main

import "fmt"

func main() {
   const LENGTH int = 10
   const WIDTH int = 5   
   var area int
   const a, b, c = 1, false, "str" //多重赋值

   area = LENGTH * WIDTH
   fmt.Printf("面积为 : %d", area)
   println()
   println(a, b, c)   
}

أمثلة على النتائج التشغيلية المذكورة أعلاه على النحو التالي:

面积为 : 50
1 false str

ويمكن أيضا أن تستخدم الثوابت تعداد:

const (
    Unknown = 0
    Female = 1
    Male = 2
)

الأرقام 0 و 1 و 2 على التوالي، نيابة عن الجنس غير معروفة والنساء والرجال.

يمكن الثوابت استخدام ليون ()، وكأب ()، unsafe.Sizeof () لحساب قيمة التعبير المستمر. التعبير المستمر، يجب أن يبنى في وظيفة وظائف، ولكن على خلاف المترجم:

package main

import "unsafe"
const (
    a = "abc"
    b = len(a)
    c = unsafe.Sizeof(a)
)

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

أمثلة على النتائج التشغيلية المذكورة أعلاه على النحو التالي:

abc 3 16

ذرة

ذرة، ثابت خاص، يمكن اعتبار تعديل مترجم يمكن أن تكون ثابتة.

عندما يبدو، وإعادة تعيين كل من الكلمة CONST إلى الصفر، ثم في اليوم التالي قبل CONST يظهر مرة واحدة كل ذرة، إلا أنها تمثل وزادت أعداد تلقائيا من جانب واحد.

ذرة يمكن أن تستخدم قيم التعداد:

const (
    a = iota
    b = iota
    c = iota
)

، كلما تم استخدام خط جديد ذرة، سيتم تلقائيا أضاف ذرة الأول يساوي 0 إلى القيمة 1، ولذلك فإن = 0، ب = 1، ج = 2 يمكن اختصار على النحو التالي:

const (
    a = iota
    b
    c
)

ذرة الاستخدام

package main

import "fmt"

func main() {
    const (
            a = iota   //0
            b          //1
            c          //2
            d = "ha"   //独立值,iota += 1
            e          //"ha"   iota += 1
            f = 100    //iota +=1
            g          //100  iota +=1
            h = iota   //7,恢复计数
            i          //8
    )
    fmt.Println(a,b,c,d,e,f,g,h,i)
}

أمثلة على النتائج التشغيلية المذكورة أعلاه على النحو التالي:

0 1 2 ha ha 100 100 7 8

تبدو ذرة من الأمثلة المثيرة للاهتمام:

package main

import "fmt"
const (
	i=1<<iota
    j=3<<iota
    k
    l
)

func main() {
	fmt.Println("i=",i)
	fmt.Println("j=",j)
	fmt.Println("k=",k)
	fmt.Println("l=",l)
}

أمثلة على النتائج التشغيلية المذكورة أعلاه على النحو التالي:

i= 1
j= 6
k= 12
l= 24

يمثل ذرة من 0 إلى إضافة 1 تلقائيا، لذلك أنا = 1 << 0، ي = 3 << 1 (<< يمثل تحولا الأيسر يعني)، وهي: ط = 1، ي = 6، وهذا ليس مشكلة، وك أساسي ولام، والإخراج من نظرة، ك = 3 << 2، ل = 3 << 3.