这篇文章主要介绍“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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。