לא מצליח לפתור תרגיל ב-go
-
למישהו מתחשק לעזור לי?
https://tour.golang.org/moretypes/18זו התוצאה [השגויה] שהגעתי אליה
package main import "golang.org/x/tour/pic" func Pic(dx, dy int) [][]uint8 { rng := [dy][dx]uint8 for i := range rng { for j := range rng[i] { rng[i][j] = uint8(i*j) } } return rng } func main() { pic.Show(Pic) }
-
עובד אך מעלה שגיאה
package main import "golang.org/x/tour/pic" import "fmt" func Pic(dx, dy int) [][]uint8 { fmt.Printf("%d %d\n", dx, dy) pow := make([][]uint8, dy) for i:=0; i<dy; i++ { for j:=0; j<dx; j++ { pow[i][j] = uint8(i*j) } } return pow } func main() { pic.Show(Pic) }
-
כך גם לא
package main import "golang.org/x/tour/pic" import "fmt" func Pic(dx, dy int) [][]uint8 { fmt.Println(dx, dy) pow := make([][]uint8, 0) fmt.Println(pow) for i:=0; i<dy; i++ { uint8array := make([]uint8, 0) for j:=0; j<dx; j++ { append(uint8array, uint8(i*j)) } append(pow, uint8array) } return pow } func main() { pic.Show(Pic) }
-
יש פתרון!
package main import "golang.org/x/tour/pic" import "fmt" func Pic(dx, dy int) [][]uint8 { fmt.Println(dx, dy) pow := make([][]uint8, dy) for i := range pow { pow[i] = make([]uint8, dx) for j := range pow[i] { pow[i][j] = uint8(i^j) //(1 << 8)-1 } } fmt.Println(pow) return pow } func main() { pic.Show(Pic) }