Go语言学习笔记一、基础知识
2016-05-27 16:45
741 查看
package main import ( "errors" "fmt" ) func main() { //变量的申明方式: //1.var vname type var a string a = "hello world !" fmt.Println(a) //2.多个变量三种:var vname1 , vname2 , vname3 type = v1 , v2 , v3,也可采用分组变量 var x, y, z int = 1, 2, 3 fmt.Println(x + y + z) //vname1 , vname2 , vname3 type := v1 , v2 , v3 i, j, k := 'a', 'b', 'c' fmt.Println(string(i) + string(j) + string(k)) //分组变量 // var ( // ii int // pii float32 // prefix string // ) //3.丢弃值: _ , b : = -1 , 12 _, b := -1, 12 fmt.Println(b) //4. 常量的申明 const Pi = 3.1415,常量是不需要使用“:”推断类型的,但你可以显示的申明常亮类型:const Pi float32 = 3.1415 const Pi = 3.1415 fmt.Println(Pi) //数值类型 //rune是int32的别称,byte 是uint8的别称 var aa rune = 32 var bb int32 = 32 if aa == bb { fmt.Println("rune是int32的别名") } var xx byte = 2 var yy uint8 = 2 if xx == yy { fmt.Println("byte是uint8的别名") } //Go中字符串是不可变的,s[0] = 'c' //编译报错,字符穿不能修,但可进行切片操作 var s string = "hello" fmt.Println(s) s = "c" + s[1:] fmt.Println(s) //字符串的换行使用'`'符号连接 str := `Hello World` fmt.Println(str) //Go中内置了error来接受错误类型,package中errors来跑出错误 var err error = errors.New("make a error") if err != nil { fmt.Println(err) } //iota枚举关键字用法,常量复制iota那么,后边的常量即使不申明复制iota,也默认等于iota,且每次+1.但再次遇到const时,iota重置为0 // const( // d = iota // e = iota // f = iota // g = iota // h // ) // fmt.Println(d) // fmt.Println(e) // fmt.Println(f) // fmt.Println(g) // fmt.Println(h) //数组的初始化 var arr [3]int arr[0] = 10 arrs := [3]int{1, 2, 3} fmt.Println(arrs[0]) fmt.Println(arrs[1]) fmt.Println(arrs[2]) //自动推断长度的数组 arrss := [...]int{4, 5, 6} fmt.Println(arrss[0]) fmt.Println(arrss[1]) fmt.Println(arrss[2]) //slice是数组的切片,slice和数组的区别是,slice的申明没有长度也不适用...来自动推断长度 slice := []byte{'a', 'b', 'c'} fmt.Println(slice) fmt.Println(slice[0]) fmt.Println(slice[1]) fmt.Println(slice[2]) //slice可从数组中得到 slice2 := arrs[1:] fmt.Println(slice2[0]) fmt.Println(slice2[1]) //[:]完整获取数组的值 slice3 := arrss[:] for i := 0; i < len(slice3); i++ { fmt.Println(slice3[i]) } fmt.Println(cap(slice3)) //从arrary中获取数组到slice中 slice3 = append(slice3, arrs[1:3]...) fmt.Println("***") for i := 0; i < len(slice3); i++ { fmt.Println(slice3[i]) } fmt.Println("***") //map的用法map[keyType]valueType user := make(map[int]string) user[1001] = "yyq" user[1002] = "yyq1" user[1003] = "yyq2" fmt.Println(user[1001]) //map的另一种初始化方式 user2 := map[int]string{1001: "yyq", 1002: "yyq2", 1003: "yyq3"} fmt.Println(user2[1003]) delete(user, 1001) fmt.Println(user[1001]) //make用于分配map,slice,channel的内存,并初始化为“非零”值,new用于各类内存的分配,并初始化成“零”值 }
相关文章推荐
- Golang1.6.1 + sumbline text 3开发环境搭建
- ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程 good
- 简单使用Google Agera框架
- goldengate一些参数整理
- 如何优雅的控制goroutine的数量
- 游戏异常处理之google-breakpad
- Django 学习小组:博客开发实战第二周教程 —— 实现博客详情页面和分类页面
- golang 爬虫(二)
- google Analytics API使用
- go文件操作
- golang中的面向对象的思想
- GoLang之协程
- Django基础(四)
- 【GDOI2016】SigmaGo 题解
- mongo文本搜索的一个例子
- golang select
- django中的模型为什么返回的是对象
- history.back()和history.go()的区别
- Django入门
- django-debug-tools 使用