基本练习
格式化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | func main(){ fmt.Printf( "this is %s" , "jab" ) // 字符串显示 fmt.Println() fmt.Printf( "this is %x" , "jab" ) // 16进制显示 fmt.Println() fmt.Printf( "this is %.3f" , 3.33333) // 浮点型显示 fmt.Println() fmt.Printf( "this is %b" , 100) // 整型以二进制显示 fmt.Println() fmt.Printf( "this is %d" , 100) // 整形十进制显示 } ---> this is jab this is 6a6162 this is 3.333 this is 1100100 this is 100 |
strings&strconv
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | package main import ( "fmt" "strconv" "strings" ) var ( url = "baidu.com" dir = "/data/app" dir2 = "/data/app/" data = " name=jab " a = "a" n = 2 ) func stringsTest() { // 判断以字符开头 if ! strings.HasPrefix(url, "http://" ) { url = "http://" + url } // 判断以字符结尾 if ! strings.HasSuffix(dir, "/" ) { dir = dir + "/" } fmt.Println(url) fmt.Println(dir) // 脱去空白字符,脱去左边字符串,脱去右边字符串 data = strings.TrimSpace(data) dir2 = strings.TrimLeft(dir2, "/" ) dir3 := strings.TrimRight(dir2, "/" ) fmt.Println(data,dir2,dir3) // 分割字符串为切片 s := strings.Split(dir, "/" ) for i:=0;i<len(s);i++ { fmt.Println(s[i]) } // 将切片组合为字符串 s2 := strings.Join(s, "/" ) fmt.Println(s2) } func strconvTest() { // int转str // str转int fmt.Println(strconv.Itoa(n)) result,err := strconv.Atoi(a) if err != nil { fmt.Println( "error..msg=" , err) } else { fmt.Println(result) } } func main() { stringsTest() strconvTest() } |
time
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | func atime() { // 获取当前时间,使用当前时间的参数格式化时间 //Format格式化必须使用这个时间,然后自己定义格式。 now := time.Now() fmt.Printf( "%d%02d%02d-%02d:%02d:%02d" ,now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second()) fmt.Println() fmt.Println(now.Format( "2006/01/02 15:04:05" )) time.Sleep(time.Second*2) } func main() { // 计算函数耗时 startclock := time.Now().UnixNano() atime() endclock := time.Now().UnixNano() fmt.Println( "cost time:" ,endclock - startclock) } |
函数
函数变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | //type 类型申明 // add_func 名称 // func(int, int) int 类型,在这里是个函数 type add_func func (int, int) int func add(a, b int) int{ return a + b } // 传递一个函数变量,要求是add_func这个类型,c是add函数变量,符合这个类型 func operator(op add_func, a int, b int) int { return op(a, b) } func main() { c := add fmt.Println(c) sum := operator(c, 100, 200) fmt.Println(sum) } |
变长变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // 一个或多个int相加,返回结果 func add2(a int, arg...int) (sum int) { sum = a for i := 0; i < len(arg); i++ { sum = sum + arg[i] } return sum } // 一个或多个字符串拼接 func concat(s string, arg...string) (ss string) { ss = s for i := 0; i < len(arg); i++ { ss = ss + arg[i] } return ss } |
匿名函数
1 2 3 4 5 6 7 | // 匿名函数,函数后面直接跟传参 func niming(a ,b int) { result := func (x, y int) int{ return x + y }(a,b) fmt.Println(result) } |
for循环
1 2 3 4 5 6 7 8 9 10 11 12 13 | package main import "fmt" // for循环练习 func main() { for i := 1; i < 10; i++ { for j := 1; j <= i; j++ { fmt.Printf( "%d * %d = %d " ,i, j, i*j) } fmt.Println() } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // 输入一个数,判断是否是整数 func test1() { // for {}相当于while True,无限循环 for { var str string fmt.Scanf( "%s" ,&str) a,error := strconv.Atoi(str) if error != nil { fmt.Println( "error!" ) return } fmt.Println(a) } } |
切片
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package main import "fmt" // slice练习 func main() { s1 := make([]int, 5, 100) // 使用make函数创建int切片,len为5,cap为100 s2 := []string{ "Jack" , "Mark" , "Nick" } // 使用字面量创建string切面,len和cap都是4 s3 := []int{} // 空切片 // 按索引给s1赋值 for i := 0; i < len(s1); i++{ s1[i] = i } fmt.Println(s1) // 打印s2的所有元素 for i := 0; i < len(s2); i++{ fmt.Println(s2[i]) } // 往s3里追加元素 for i :=0; i < 10; i++{ s3 = append(s3, i) } fmt.Println(s3) } |
1 2 3 4 5 6 7 8 9 10 11 | // []int空切片 // append(切片,加入的元素) // a...表示a里面的所有元素 func slice() { var a []int var b []int a = append(a,1,2,3,4) b = append(a,a...) fmt.Println(a) fmt.Println(b) } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 本地部署 DeepSeek:小白也能轻松搞定!
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 普通人也能轻松掌握的20个DeepSeek高频提示词(2025版)