ماذا يطبع البرنامج التالي؟
package main
func main() {
count := 0
for i := range [256]struct{}{} {
if n := byte(i); n == -n {
count++
}
}
println(count)
}
الخيارات:
- 0
- 1
- 2
- 3
الإجابة: 2
شغِّله على Go play.
النقاط الأساسية:
- في Go، بالنسبة إلى قيمة
xمن نوعbyte(أيuint8) غير ثابتة وغير صفرية، يتجاوز-xنطاق النوعbyteويُلَفّ على هيئة(-x + 256) % 256. - بالنسبة إلى متغير
xمن النوعbyte، لا يحدثx == -xإلا عندما تكونxتساوي0أو128.