اختبارات

معامل 1

ماذا يطبع البرنامج التالي؟


package main

var x, y = true, false

func o(b bool) bool {
	print(b)
	return !b
}

func main() {
	_ = x || o(x)
	_ = y && o(y)
}

الخيارات:

  • true
  • false
  • truefalse
  • (لا يطبع شيئًا)

الإجابة: (لا يطبع شيئًا)

شغِّله على Go play.

النقاط الأساسية:

  • عند تقييم a || b، يُقيَّم التعبير a أولًا، ولن يُقيَّم التعبير b إلا إذا قُيِّم a على أنه false.
  • عند تقييم a && b، يُقيَّم التعبير a أولًا، ولن يُقيَّم التعبير b إلا إذا قُيِّم a على أنه true.