package main import ( "fmt" "math" ) var f int = 1 /*全局变量允许 声明但是不使用*/ const AGE int = 25 //定义常量 const SEX = "man" //定义常量 const ( //枚举类型 Unknow = 0 Female = 1 Male = 2 CC = "lalalla" D //枚举特效 D的值会和CC一样 我自己理解为枚举的上下继承, L = len(CC) //可以使用系统内置函数 否则编译不过 ) //定义结构体 type Circle struct { radius float64 } type Books struct { title string author string bookid int url string } //iota //丝毫 极少 通常用于否定句 不是好词 iota标志枚举声明的数量 从0开始 不好理解的概念哦~ func main() { fmt.Println("hello world22"); var a int = 1 /*var 声明变量 a是int*/ a += 2 c := 2 /*以省略var的方式声明变量c 并且类型自动判断!这种不带声明格式的只能在函数体中出现*/ var b string = "iloveyou!" /*声明字符串变量不能用单引号!*/ var d bool /*局部变量变量声明不使用也会报错~~*/ e, f := 5, 7 /*并行赋值*/ f, e = e, f //交换值 fmt.Println(a, c, b, d, e, f) _, f = e, f //抛弃e println(f, e) println(AGE, SEX) if AGE > 10 { println("大于10", max(1, 3)) g, h := swap("one", "two") println(g, h) //two one swap2(&g, &h) //函数是引用传递 用&传参 println(g, h) //one two } else { } //这样声明方式不能在函数外声明 getR := func(x float64) float64 { return math.Sqrt(x) } println(getR(9)) // 声明结构体 var i Circle i.radius = 10; println(i.getArea()) var arr0 [10] int //声明长度为10的空数组 定义变量长度类型 var arr = [4]int{1, 2, 3, 4} //已知长度的数组声明 var arr1 = [...]int{1, 2, 3, 4, 5, 5, 6} //不确定长度数字声明 推荐 println(arr[3]) println(len(arr1)) arr0[0] = 1 var arr2 [3][4] int //多维 arr2[0][0] = 1 var arr3 = [3][4]int{ //这个语法不太熟悉 {1, 2, 3, 4}, {1, 2, 3, 4}, {1, 2, 3, 4}, } println(arr3[0][0]) var ip *int //int类型空指针 nil println(ip) //空指针 nil ip = &a //空指针的赋值 println(ip) //访问ip的地址 println(*ip) //访问ip的值 //行内赋值方法用处还挺多呢! ss := Books{title: "你的名字", author: "杨森", url: "http://www.baidu.com/", bookid: 12} //格式化打印 go 的结构体 fmt.Printf("%+v", ss) struct1(ss) //定义切片 未指定长度的数组 //初始化 ii_s := make([]int, 3, 5) //第三个参数是容量 p_s(ii_s) var numbers []int if (numbers == nil) { fmt.Println("numbers为空") } p_s(numbers) //for range可以遍历数字 map等~ nums := []int{1, 2, 3, 4} for i, num := range nums { fmt.Println(i, num) } fmt.Printf("%d的阶乘是%d", 10, fac(10)) //接口 多个方法的封装 } //递归自己调用自己 阶乘~ func fac(n uint64) (result uint64) { if (n > 0) { result = n * fac(n-1) return result } return 1 } func p_s(x []int) { fmt.Printf("len=%d, cap=%d,slice=%+v", len(x), cap(x), x) } func max(n1, n2 int) int { return n1 + n2 } /** 返回多个值 接收的时候需要使用并行赋值 */ func swap(s1, s2 string) (string, string) { return s2, s1 } //引用传递不用使用返回值和并行赋值接收 方便一点 func swap2(s1 *string, s2 *string) { var tmp string //声明中间变量 tmp = *s1 *s1 = *s2 *s2 = tmp } //定义方式暂时不动~~~ func (c Circle) getArea() float64 { return 3.14 * c.radius * c.radius } //结构体做参数 func struct1(book Books) { fmt.Printf("%+v", book) }
以上所述就是小编给大家介绍的《GO的部分总结~》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- MySQL基础部分总结
- 部分中间件漏洞总结
- 2019 前端性能优化年度总结 — 第四部分
- 你负责人工智能哪部分?人工那部分;知识图谱的构建主要靠人工还是机器?
- cocosdx接bugly,上传符号表,有一部分内容解析出来了, 另一部分没有解析出来
- python字典实例(部分)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
我是90后,我是创业家
腾讯互联网与社会研究院 / 华章图书 / 2015-1-1 / 48.00元
第1本揭秘17个90后精彩创业故事 他们是:脸萌创始人郭列、北大硕士卖米粉的张天一、微博《我只过1%的生活》短时间转发35万多次的伟大的安妮、备受争议的90后总裁余佳文、节操姐CEO陈桦……17位90后的创业家为你分享他们的创业故事!从这些90后孩子的经历中,还可以看到互联网带来的巨大好处,这又是这一代人的幸运。这些创业者有一个共同特点,即他们在做自己事业的时候,会经常遇到来自家庭和社会的阻......一起来看看 《我是90后,我是创业家》 这本书的介绍吧!