发布了文章2019-06-26
func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) 同Marshal,并且可以格式化
发布了文章2019-06-26
测试的目的是确认目标代码在给定的场景下,有没有按照期望工作 。一个场景是正向路经测试,就是在正常执行的情况下,保证代码不产生错误的测试。另外一些单元测试可能会测试负向路径的场景,保证代码不仅会产生错误,而且是预期的错误。总之,不管如何调用或者执行代...
发布了文章2019-06-26
Go语言——包和包管理工具 1、包简介 1.1 工作空间 go语言的工作空间必须由 bin、pkg、src三个目录组成 {代码...} 可以在GOPATH环境变量中添加多个工作空间,但不能和GOROOT相同。通常go get使用第一个工作空间保存下载的第三方库 1.2 源文件 编码:源码⽂件必须是 UTF...
发布了文章2019-06-24
要想写出高效简单的并发程序,还需要了解下常用的 goroutine和channel以哪种方式写,下面介绍3种常用的并发模式,写出更简化高效的并发。
发布了文章2019-04-03
切片是一种数据结构,这种数据结构便于使用和管理数据集合。切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数 append 来实现的。这个函数可以快速且高效地增长切片。还可以通过对切片再次切片来缩小一个切片的大小。因为切片...
发布了文章2019-03-31
进程:程序启动时(比如qq),操作系统位程序开启一个进程。可以把它看做是操作系统进行资源分配和调度的一个容器,里面包含了该应用程序用到的所有资源。
发布了文章2019-03-31
channel 是一种架设在goroutine之间进行 通信的管道,类似队列。channel是引用类型,类型为chan,可以通过make关键字进行创建指定类型的channel。channel存在的意义是让goroutine通过通信来共享内存,一个往通道发送数据,一个从通道获取数据,来实现数据同步。
发布了文章2019-03-26
1、安装JDK 1.1查看当前linux是否安装java 安装之前先查看原linux 是否安装jdk , rpm -qa | grep -i java 如果没有就安装,如果有,就卸载 rpm -e --nodeps 要卸载的软件名 1.2 上传jdk到linux文件目录 我们一般把软件安装到/usr/local 下,这里我是创建了java文件夹...
发布了文章2019-03-26
1、下载yum安装源 官网:[链接]如图,目前的版本已经到8了,我们先把yum源下载下来,并且导入到linux服务器目录下。 然后我们执行rpm -ivh mysql80-community-release-el7-2.noarch.rpm 当然还有一种方式,就是我们直接在线下载:直接安装自己需要的版本 {代码...} 2...
发布了文章2019-03-26
1、linux 目录结构 借用一张图,Linux 中,一切皆文件,所以,文件的根目录为/ centos 系统cd / 到根目录,ls ,查看所有文件如下: {代码...} 这么多目录,我们又不是运维没必要都知道。主要的目录为 / : 这个是系统的根目录,一般只存放目录,不存放文件 /bin : /us...
发布了文章2019-03-22
(1)配置react-native的开发环境(2)创建一个react-native 的项目(3)把项目中的android目录里面的东西换成现有的项目(4)配置android项目的build.gradle文件以及各种依赖(5)运行项目,运行服务,设置ip端口调试。(6)各种踩坑问题,比如不支持64位手机的so库...
发布了文章2019-03-22
activity 和fragment 是有声明周期的,有时候,我们的很多操作需要写在声明周期的方法中,比如,下载,文件操作等,这样很多情况下回导致,我们在activity中的声明周期方法中写越来越多的代码,activity或者fragment 越来越臃肿,代码维护越来越困难。 使用lifecycle...
发布了文章2019-03-20
go语言中的duck typing并不是真正的duck typing,但是他是类似的概念,go语言接口的实现就可以看做为duck typing。举例:什么是鸭子?
发布了文章2019-03-19
切片是一种数据结构,这种数据结构便于使用和管理数据集合。切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数 append 来实现的。这个函数可以快速且高效地增长切片。还可以通过对切片再次切片来缩小一个切片的大小。因为切片...
发布了文章2019-03-19
go语言中的duck typing并不是真正的duck typing,但是他是类似的概念,go语言接口的实现就可以看做为duck typing。举例:什么是鸭子?
发布了文章2019-03-06
使用 type <Name> struct{} 定义结构,名称遵循可见性规则 struct是值类型 可以使用字面值对结构进行初始化 支持匿名结构,和匿名字段 允许直接通过指针来读写结构成员 相同类型的成员可进行直接拷贝赋值,支持 == 与 !=比较运算符,但不支持 > 或 < 嵌...
发布了文章2019-03-05
笼统的来说,go的map底层是一个hash表,通过键值对进行映射。 键通过哈希函数生成哈希值,然后go底层的map数据结构就存储相应的hash值,进行索引,最终是在底层使用的数组存储key,和value。稍微详细的说,就设计到go map 的结构。hmap 和bmap。
发布了文章2019-03-04
笼统的来说,go的map底层是一个hash表,通过键值对进行映射。 键通过哈希函数生成哈希值,然后go底层的map数据结构就存储相应的hash值,进行索引,最终是在底层使用的数组存储key,和value。稍微详细的说,就设计到go map 的结构。hmap 和bmap。
发布了文章2019-03-04
类似其它语言中的哈希表或者字典,以key-value形式存储数据 Key必须是支持==或!=比较运算的类型,不可以是函数、map或slice;value 可以是任意类型。 Map查找比线性搜索快很多,但比使用索引访问数据的类型慢100倍 Map使用make()创 建,支持 := 这种简写方式 make(ma...
发布了文章2019-03-01
切片是一种数据结构,这种数据结构便于使用和管理数据集合。切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数 append 来实现的。这个函数可以快速且高效地增长切片。还可以通过对切片再次切片来缩小一个切片的大小。因为切片...