您好,登錄后才能下訂單哦!
這篇文章主要介紹“go語言程序實例代碼分析”,在日常操作中,相信很多人在go語言程序實例代碼分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”go語言程序實例代碼分析”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1 打印如下圖案
2 輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。
3、構造一個map以學號為 key 存儲學生信息(姓名、性別、學號、年齡、成績),產生10 個學生信息并存入 map,然后將所有學生信息取出,按成績排序(由高到低)存入一個切片中,然后按順序輸出學生信息。
4、設計一段程序,滿足如下場景:鑰匙啟動車輛,車輛在導航的提醒下從外面開車回家.
package main import ( "fmt" "math/rand" "sort" ) /** 菱形輸出 */ func Diamond(cmax, rmax int) { laststar := 1 for r := 1; r <= rmax; r++ { var star, space, start, end int if (r == 1) { star = laststar } else if (r > 1 && r <= 4) { star = laststar + 2 } else { star = laststar - 2 } laststar = star space = cmax - star start = space/2 + 1 end = (start + star) - 1 for c := 1; c <= cmax; c++ { if (c < start || c > end) { fmt.Print(" ") } else { fmt.Print("*") } } fmt.Println() } } /** 輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。 */ func Charactortype(str string) { var e,s,d,o int for i := o; i < len(str); i++ { switch { case 64 < str[i] && str[i] < 91: // 英文 e += 1 case 96 < str[i] && str[i] < 123: // 英文 e += 1 case 47 < str[i] && str[i] < 58: //數字 d += 1 case str[i] == 32: //空格 s += 1 default: o += 1 } } fmt.Printf("字符串英文字符個數是: %d\n",e) fmt.Printf("字符串數字字符個數是: %d\n",d) fmt.Printf("字符串空格字符個數是: %d\n",s) fmt.Printf("字符串其它字符個數是: %d\n",o) } //3 構造一個map以學號為 key 存儲學生信息(姓名、性別、學號、年齡、成績),產生10 個學生信息并存入 map,然后將所有學生信息取出,按成績排序(由高到低)存入一個切片中,然后按順序輸出學生信息。 type Student struct { name string sex string number string age string score int } type Students [] Student func (s Students) Len() int { return len(s) } func (s Students) Swap(i, j int) { s[i], s[j] = s[j], s[i] } func (s Students) Less(i, j int) bool { return s[i].score < s[j].score } /** 學生成績排序 */ func SortScore() { var sexs = [2]string{"男","女"} var names = [10]string{"張三","李四","王","趙","牛","何","劉","孟","齊","徐"} var students= make(map[int]Student) //產生10個學生信息 for r := 1; r <= 10; r++ { s1 := Student {names[rand.Intn(10)],sexs[rand.Intn(2)],fmt.Sprint(rand.Intn(100)),fmt.Sprint(rand.Intn(100)),rand.Intn(100)} students [ r ] = s1 } Studentss := make([]Student, 10,10) index :=0; for _,v:= range students{ Studentss[index] = v index++ } sort.Sort(sort.Reverse(Students(Studentss))) //按照 score 的由高到底排序 fmt.Println(Studentss) } //3 設計一段程序,滿足如下場景:鑰匙啟動車輛,車輛在導航的提醒下從外面開車回家. type Car struct { name string key int x int y int } func Navigation() { var navigations = [10][10]int{ {0, 1, 0, 0,0, 0,0, 0,0, 0,} , {0, 0, 0, 0,0, 0,0, 0,0,1,} , {0, 1, 0, 0,0, 0,0, 0,0, 0,} , {0, 0, 0, 0,0, 1,0, 0,0, 0,} , {0, 0, 1, 0,0, 0,0, 0,0, 0,} , {0,0, 0, 0,0, 1,0, 0,0, 0,} , {0, 0, 0, 1,0, 0,0, 0,0, 0,} , {0, 0, 0, 0,0, 1,0, 0,0, 0,} , {0, 0, 0, 0,0, 0,0, 1,0, 0,} , {0, 0, 0, 0,0, 1,0, 0,0, 0,}} car:= Car{"奧迪",1 ,0,0} if(car.key == 1){ for x,value := range navigations { for y,v := range value { if(v ==1){ car.x = x car.y = y fmt.Print("*") } else { fmt.Print(" ") } } fmt.Println() } fmt.Println("安全到家") } } func main() { Diamond(7, 7) Charactortype("werhewhrw232323 343434") SortScore() Navigation(); }
到此,關于“go語言程序實例代碼分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。