06 2019 档案

摘要:转自:https://studygolang.com/articles/9506 最近在油管上面看了一个视频:Understanding nil,挺有意思,这篇文章就对视频做一个归纳总结,代码示例都是来自于视频。 nil是什么 相信写过Golang的程序员对下面一段代码是非常非常熟悉的了: 当出现不 阅读全文
posted @ 2019-06-23 01:28 maji233 阅读(322) 评论(0) 推荐(0) 编辑
摘要:结论:是一个指向hmap结构体类型的指针。 首先我们来看一段代码: 输出是true,m是一个指针,fn内部申请的map[int][int]不影响外部m。 所有m是一个指针,那具体m的结构是什么呢?可以通过gdb调试: 所以一切明了,就是一个指针。 阅读全文
posted @ 2019-06-23 00:56 maji233 阅读(589) 评论(0) 推荐(0) 编辑
摘要:转自https://blog.csdn.net/i6448038/article/details/82057424并修改 map是Go语言中基础的数据结构,在日常的使用中经常被用到。但是它底层是如何实现的呢? 总体来说golang的map是hashmap,是使用数组+链表的形式实现的,使用拉链法消除 阅读全文
posted @ 2019-06-22 23:11 maji233 阅读(11206) 评论(0) 推荐(6) 编辑
摘要:在刚接触GO语言时候,我相信你也会有这种困惑,为什么有的函数名前面有输入参数,而一些却没有,它们是否有差别?确实有差别, 函数名前面没有输入参数,是一般的函数; 函数名前面有输入参数,是结构的方法,输入参数叫做“方法接收者”!GO语言没有类,方法都定义在结构上了!! 如代码所示,A和B是普通函数,而 阅读全文
posted @ 2019-06-20 18:11 maji233 阅读(591) 评论(0) 推荐(0) 编辑
摘要:1、定义一个结构体 2、初始化一个结构体 有两种情况,一是得到结构体的对象,一是得到结构的对象指针,分别有三种方式: 3、对象与对象指针的区别(更确切的说应该是值类型和指针类型) 与C/C++类似,GO语言也存在对象与对象的指针,但不同的是,GO语言中没有 -> 操作符来调用指针所属的成员,而与一般 阅读全文
posted @ 2019-06-20 17:43 maji233 阅读(3588) 评论(0) 推荐(0) 编辑
摘要:定义一个struct,定义的时候是字段名与其类型一一对应,实际上Go语言支持只提供类型,而不写字段名的方式,也就是匿名字段,或称为嵌入字段。 当匿名字段是一个struct的时候,那么这个struct所拥有的全部字段以及方法(指绑定在这个类型上的,见最后)都被隐式地引入了当前定义的这个struct。 阅读全文
posted @ 2019-06-20 16:31 maji233 阅读(2207) 评论(0) 推荐(0) 编辑
摘要:Go语言中的内建函数new和make是两个用于内存分配的原语(allocation primitives)。对于初学者,这两者的区别也挺容易让人迷糊的。简单的说,new只分配内存,make用于slice,map,和channel的初始化。 1. new 这是一个用来分配内存的内建函数,但是与C++不 阅读全文
posted @ 2019-06-18 21:51 maji233 阅读(502) 评论(0) 推荐(0) 编辑
摘要:我怎么知道一个变量是分配在堆上还是栈上? 正确的观点是,你不需要知道。go语言中的每一个变量,它的生命周期和引用它的周期一样长。该语言的语义和实现时选择的存储位置,是没有关系的。 在编写高效率的程序时,存储位置的确会有影响。如果可以,go语言编译器将会分配函数的局部变量到函数的栈帧上。然而,如果编译 阅读全文
posted @ 2019-06-18 21:48 maji233 阅读(2966) 评论(0) 推荐(0) 编辑
摘要:闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 下面就是我的学习笔记,对于Javascript初学者应该是很有用的。 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变 阅读全文
posted @ 2019-06-18 16:32 maji233 阅读(1163) 评论(0) 推荐(1) 编辑
摘要:import后面的是目录 包名和目录名没有关系,但是包名最好等于目录名 同一个目录下只能有一种包名。 转自:http://tonybai.com/2015/03/09/understanding-import-packages/ Golang使用包(package)这种语法元素来组织源码,所有语法可 阅读全文
posted @ 2019-06-18 14:57 maji233 阅读(25052) 评论(1) 推荐(1) 编辑
摘要:默认情况下,所有的goroutine都在同一个原生线程里跑,也就是只使用了一个CPU核。但是,通过runtime.GOMAXPROCS(4)设定,可以将goroutine调度到多个CPU上运行。 在同一个原生线程里,若当前goroutine不发生阻塞,那么不会主动让出CPU给其他同一线程的gorou 阅读全文
posted @ 2019-06-18 14:16 maji233 阅读(596) 评论(0) 推荐(1) 编辑
摘要:线程与协程的区别 切换开销的区别 线程太重,资源占用太高,频繁创建销毁会带来严重的性能问题; 协程切换远比线程小 切换开销的区别 线程太重,资源占用太高,频繁创建销毁会带来严重的性能问题; 协程切换远比线程小 2. 协程的好处: 一个协程几乎就是一个普通的对象,因此可以放心阻塞,一旦阻塞那么让当前线 阅读全文
posted @ 2019-06-18 14:05 maji233 阅读(1854) 评论(0) 推荐(1) 编辑
摘要:1. Docker for Mac 是运行在 Hypervisor 上的 一个 HyperKit 实现,毕竟还是虚拟化加容器的实现方式,而不是内核级别的实现。(虚拟机) Docker for Mac不使用VirtualBox,而是使用HyperKit,一个轻量级的macOS虚拟化解决方案,它在Mac 阅读全文
posted @ 2019-06-18 00:45 maji233 阅读(2636) 评论(0) 推荐(0) 编辑
摘要:第一篇 http://virtual.51cto.com/art/201805/572135.htm Docker容器与虚拟机有什么区别? Docker是一个虚拟环境容器,可以将你的可执行文件、配置文件及一切其他你需要的文件一并打包到这个容器中,并发布和应用到任意平台。比如,你在本地用Python开 阅读全文
posted @ 2019-06-16 18:10 maji233 阅读(3660) 评论(0) 推荐(0) 编辑
摘要:转自https://baijiahao.baidu.com/s?id=1590260903873768203&wfr=spider&for=pc 最近遇到一个case,该案例中,网站既存在带www的域名又存在不带www的域名,且两个网站之间并没有做301重定向的跳转关系。 小编我建议客户只能保留一个 阅读全文
posted @ 2019-06-14 21:50 maji233 阅读(9425) 评论(0) 推荐(0) 编辑
摘要:转载自菜鸟教程https://www.runoob.com/linux/linux-file-content-manage.html Linux系统中使用以下命令来查看文件的内容: cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写! less 与 阅读全文
posted @ 2019-06-10 17:24 maji233 阅读(271) 评论(0) 推荐(0) 编辑
摘要:转载自https://www.runoob.com/linux/linux-vim.html Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。 但是目前我们使用比较多的是 vim 编辑器。 vim 具有程序编辑的能力,可以主动的以 阅读全文
posted @ 2019-06-09 23:32 maji233 阅读(492) 评论(0) 推荐(0) 编辑
摘要:Ctrl + a 跳到一行最前e 跳到一行最后 u 剪切光标之前/整行(不同shell)k 剪切光标之后的y 粘贴 r 搜索历史l 清屏clear c 结束当前命令z 当前命令放入后台 s 暂停屏幕输出q 恢复屏幕输出 ​​​ 阅读全文
posted @ 2019-06-09 23:26 maji233 阅读(379) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示