לא מצליח לפתור תרגיל ב-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) }
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות