上一页 1 2 3 4 5 6 7 8 9 ··· 22 下一页
摘要: 预先类型: int/int8/bool/string ... 未命名类型:map[string]string []int [][]string 阅读全文
posted @ 2020-05-28 18:25 菜鸟++ 阅读(240) 评论(0) 推荐(0)
摘要: type switchs用法 这里存在一个未知类型变量的内省操作(introspection operation),就是x.(type),其中x是interface{}类型 阅读全文
posted @ 2020-05-28 11:34 菜鸟++ 阅读(520) 评论(0) 推荐(0)
摘要: 相同点: 都能够直接引用对象,并对对象进行操作. 不同点: 指针 引用 指针类型的变量能够保存一个对象的地址 引用是一个对象的别名 可以为空nil,可以不初始化 不可以为空nil,必须初始化 当设计一个变量用于指向另一个对象,但是变量有可能为空,这时应该使用指针. 当设计一个变量总是指向一个对象,不 阅读全文
posted @ 2020-05-27 18:05 菜鸟++ 阅读(329) 评论(0) 推荐(0)
摘要: 一个带换行的字符串写法: 如果想在一行输出一个很长的字符串. 方法一:把字符串拆分,成多个字符串,每个字符串作为Println的参数传进入,各个参数之间用逗号分隔, fmt.Println("aaa","bbb", //实参列表可以换行写,但是不要光秃秃的传入一个数据,来结尾,要以一个逗号来结尾. 阅读全文
posted @ 2020-05-26 19:19 菜鸟++ 阅读(1321) 评论(0) 推荐(0)
摘要: 不用人加 编译的时候自动加了分号; 编译器工作原理 首先,在一行中,寻找成对的符号,比如一对字符串的引号.一对圆括号,一对大括号 上述任务完成后,在一行中没有其他成对的标示,然后就在行尾追加分号; 所以一行一个语句,结尾不用加分号. 举例: import 后面,每个包写一行,后面自动追加分号; im 阅读全文
posted @ 2020-05-26 16:27 菜鸟++ 阅读(1157) 评论(0) 推荐(0)
摘要: 不同的类型,他们的默认的%v 一个变动的格式化字符串,相当于一个变量,遇到不同类型,就变形成不同的格式. 类型 %v bool %t int/int8/... %d uint/uint8/... %d float32/64/complex64 %g string %s chan %p pointer 阅读全文
posted @ 2020-05-25 19:01 菜鸟++ 阅读(2546) 评论(0) 推荐(0)
摘要: decorator pattern 定义:允许向现有的对象(一个函数也认为是一个对象)添加新功能,而不改变其结构. 多功能螺丝刀的原理 func functionValue(a,b int,do func(int,int)int){ do(a,b) } 像这样,functionValue函数形参里面 阅读全文
posted @ 2020-05-25 18:51 菜鸟++ 阅读(135) 评论(0) 推荐(0)
摘要: 数据类型的分类:第一类值VS第二类值 第一类值:变量中可以存储函数,也就是说func类似int/double. 第二类值: 1.不能存储函数,不能动态创建函数,不能动态销毁函数; 2.只能存储一个指向函数的指针; 阅读全文
posted @ 2020-05-25 17:47 菜鸟++ 阅读(765) 评论(0) 推荐(0)
摘要: 函数执行时,除了运行函数体内的代码,还要使用函数外的代码. 也就是说,这个函数跟函数所使用的到外部信息是一个整体存储的. 这种将函数和它所用的信息作为一个整体,就是闭包. 比如排序,A让B排序,B会做排序,但排序需要知道哪个比哪个大,这点B自己不知道,就需要A告诉它。而这种判断那个大,本身是一种动作 阅读全文
posted @ 2020-05-25 17:46 菜鸟++ 阅读(157) 评论(0) 推荐(0)
摘要: 函数也是一种语法糖. 函数是第一类值,函数也是值,函数也有创建函数的表达式. 函数的定义本质:创建类型为func([形参])[(实参)]的值并将它赋值给一个变量的语句. func foo([形参])[(实参)]{ 函数体 } 它其实是一种语法糖,他是下面写法的美化形式. foo = func([形参 阅读全文
posted @ 2020-05-25 16:16 菜鸟++ 阅读(277) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 22 下一页