ماذا يطبع البرنامج التالي؟
package main
const (
_ = 6
A, _ = iota, iota + 10
_, _
_, B
)
func main() {
println(A, B)
}
الخيارات:
- 0 15
- 1 15
- 0 13
- 1 13
الإجابة: 1 13
شغِّله على Go play.
النقاط الأساسية:
- تقول مواصفة Go: داخل قائمة تعريف ثوابت محاطة بأقواس، يمكن حذف قائمة التعبيرات من أي ConstSpec عدا الأول. وقائمة فارغة كهذه مكافئة للاستبدال النصي لأول قائمة تعبيرات غير فارغة سابقة، ونوعها إن وُجد.
- قيمة
iotaالمعرَّفة مسبقاً هي المعرّف الترتيبي لمواصفة الثابت (بدءاً من 0) داخل تعريف ثابت.
يحتوي تعريف الثابت في شيفرة الاختبار على 4 مواصفات ثابت. ووفقاً للقواعد المذكورة للتو، يكون التعريف مكافئاً للتعريف التالي:
const (
_ = 6
A, _ = 1, 1 + 10
_, _ = 2, 2 + 10
_, B = 3, 3 + 10
)