自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 golang学习系列——23. 结构体(类)的方法

1. 概念接收者是某种类型的变量。Go 方法是作用在接收者(receiver)上的一个函数. 因此方法是一种特殊类型的函数。一个类型加上它的方法等价于面向对象中的一个类。 接收者类型可以是(几乎)任何类型, 但是: 不能是一个接口类型, (因为接口是抽象定义, 但是方法是具体实现) 不能是一个指针类型,但是它可以是任何其他允许类型的指针。类型 T...

2020-05-13 11:47:10 438

原创 golang学习系列——22. 结构体(struct)/类

目录1. 说明2. 结构体2.1 定义2.2 创建2.3 初始化2.4 使用2.5 结构体转换3. 结构体进阶3.1 工厂模式3.2 带标签的结构体3.3 匿名字段和内嵌结构体1. 说明Go 通过类型别名和结构体的形式支持用户自定义类型,或者叫定制类型。Go 语言可以为自定义类型定义方法, 来完成类似其他语言类的定义.2. 结构体...

2020-02-13 19:07:21 276

原创 golang学习系列——21. 自定义包 (占位, 后补)

一. 为自定义包使用 godocgodoc 会为每个文件生成一系列的网页例如:1. 在 tmp 目录下我们有一些 go 文件,文件中有一些注释(文件需要未编译)2. 命令行下进入目录下并输入命令: godoc -http=:6060 -goroot="."(. 是指当前目录,-goroot 参数可以是 /path/to/my/package1 这样的形式指出 pac...

2020-02-13 15:13:11 165

原创 golang学习系列——20. 包

目录一. 标准库1. regexp 包:正则表达式2. sync 包:锁和同步2.1 sync.Mutex互斥锁2.2 sync.RWMutex 读写锁2.3 once.Do(call)二. 包的使用1. 自定义包2. 引用包3. 包的初始化一. 标准库像 fmt, os 这样具有常用功能的内置包. 列举一些如下:unsafe: 包...

2020-01-17 18:14:55 162

原创 golang学习系列——19. map

目录一. 概念二. 声明和初始化1. 声明方式2. 初始化三. 使用方法1. 测试key是否存在2. 删除元素3. for-range4. map 的排序5. 将 map 的 key, value 互换四. 使用注意一. 概念map 是一种特殊的数据结构: 一种键值对的无序集合, 可以根据给定的 key 快速的定位对应的value.在 ...

2020-01-14 20:17:43 142

原创 golang学习系列——18. 数组和切片

目录一. 数组1. 概念2. 初始化3. 用数组传参二. 切片1. 定义2. 常用函数3. 优点4. 声明和初始化三. 切片进阶1. 切片重组2. 切片的复制和追加3. 垃圾回收4. 字符串5. 排序切片和数组四. new() 和 make() 的区别五. for-range 结构六. bytes 包一. 数组1. 概...

2020-01-08 20:04:27 182

原创 golang学习系列——17. 闭包的应用

目录一. 闭包作返回值示例1示例2结论二. 用闭包调试一. 闭包作返回值示例1func add() func(int) int { return func(a int) int { return a + 2 }}func add2(x int) func(a int) int { return func(a int) int { retu...

2020-01-04 11:29:17 128

原创 golang学习系列——16. 函数(2)

一. 递归函数定义在函数体内调用自身函数示例func test(i int) { //todo test(j)}注意大量的递归调用容易导致程序栈内存耗尽(栈溢出)栈溢出一般可以通过惰性求值的技术来解决:golang 的话可以使用 channel 和 goroutine 来实现惰性求值,举例如下func generatenums() cha...

2020-01-03 20:45:22 237

原创 golang学习系列——15. defer

目录1. defer 的基本功能2. 应用场景举例3. 注意事项1. defer 的基本功能defer后面只能跟函数调用语句,defer把该语句执行的时间推迟到执行结束的时候用法类似于面向对象编程语言 Java 和 C# 的 finally 语句块,它一般用于释放某些已分配的资源。func test() { defer fmt.Println("out tes...

2019-12-28 18:30:27 98

原创 golang学习系列——14. 函数(1)

1. 介绍函数:基本的代码块。定义如下:func funcname(argList) (retList) { //todo}函数签名:函数参数、返回值以及它们的类型被统称为函数签名。函数申明:申明一个在外部定义的函数,你只需要给出函数名与函数签名,不需要给出函数体,例如:func funcName(begin, end int)目的:(为什么要用多个函数)...

2019-12-28 17:22:31 169

原创 golang学习系列——13. 控制结构

目录总览1. if else示例初始化判断2. switch 结构示例初始化判断3. for 循环结构4. 关键字1. break2. continue3. 标签与 goto总览条件分支结构if-else 结构 switch 结构 select 结构循环迭代结构for (range) 结构关键字breakc...

2019-10-10 21:47:30 165

原创 golang学习系列——12. 指针

指针程序在内存中存储信息,每个内存块(或字)有一个地址,通常用十六进制数表示,如:0x6b0820 或 0xf84001d7f0。这个地址可以存储在一个叫做指针的特殊数据类型中,一个指针变量可以指向任何一个值的内存地址在 32 位机器上占用 4 个字节,在 64 位机器上占用 8 个字节,并且与它所指向的值的大小无关。当一个指针的零值为 nil。指针运算符&:放到一...

2019-10-10 20:50:11 126

原创 golang学习系列——11. 时间和日期

关于时间在实际开发运用过程中,尤其需要注意系统标准/时区带来的影响(无论何种语言)。1. 时间标准 UTC 协调世界时(英语:Coordinated Universal Time,法语:Temps Universel Coordonné,简称UTC)是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间。 中华民国采用CNS 7648的《资料元及交换...

2019-10-10 20:18:40 240

原创 golang学习系列——10. 字符串

目录1. 说明2. 赋值2.1 解释字符串2.2 非解释字符串3. 零值4. 运算4.1 比较4.2 索引4.3 拼接+5. 包 strings (对于字符串的预定义处理函数)6. 包 strconv (字符串相关的类型转换)1. 说明golang 中的字符串是 UTF-8 字符的一个序列(当字符为 ASCII 码时则占用 1 个字节,其它...

2019-10-02 15:29:03 169

原创 golang学习系列——9. 基本类型和运算符

目录概念说明基本类型布尔类型 bool字符类型数字类型整数类型浮点型其他数字类型字符串类型其他类型运算符与优先级算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符运算符优先级(伪)随机数生成概念说明表达式是一种特定的类型的值,它可以由其它的值以及运算符组合而成。一元运算符只可以用于一个值的操作(作...

2019-09-27 19:08:36 240

原创 golang学习系列——8. 常量和变量

目录常量变量作用域常量使用关键字const定义,用于存储不会改变的数据。存储在常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。实际验证如下, 提示错误 :“const initializer test literal is not a constant”常量的定义格式:const ident [type] = value,...

2019-09-12 17:37:45 587

原创 golang学习系列——7. 要素说明

目录注释函数类型自定义类型类型转换命名规范注释注释风格同 c/c++行注释: // code块注释: /* code */每一个包应该有相关注释,在 package 语句之前的块注释将被默认认为是这个包的文档说明,其中应该提供一些相关信息并对整体功能做简要的介绍。一个包可以分散在多个文件中,但是只需要在其中一个进行注释说明即可。// Pa...

2019-09-12 16:53:29 135

原创 golang学习系列——6. hello world

目录1. 代码基本结构hello world2. package 以及 import包(package)标准库编译导入(import)可见性1. 代码基本结构Go 程序的执行(程序启动)顺序如下:按顺序导入所有被 main 包引用的其它包,然后在每个包中执行如下流程: 如果该包又导入了其它的包,则从第一步开始递归执行,但是每个包只会被导入一次。 然...

2019-08-26 17:39:18 157

原创 golang学习系列——5. 常用工具

目录编译代码格式化工具生成代码文档工具其它工具编译代码从 Go 1 版本开始,使用 Go 自带的更加方便的工具来构建应用程序go build编译自身包和依赖包 go install编译并安装自身包和依赖包格式化工具强制统一风格(手动滑稽)Go 开发团队不想要 Go 语言像许多其它语言那样总是在为代码风格而引发无休止的争论,浪费大量宝贵的开发时...

2019-08-26 11:14:45 164

原创 golang学习系列——4. 程序调试

GDB 调试:注意事项1. golang1.3之后的版本,对于支持gdb调试存在很大的问题。产生这个问题的原因是,golang的runtime没有完整的被gdb支持。最新比较完整支持gdb调试的版本是golang 1.2.2,但是也有个别问题存在。2. 在编译go程序的时候,需要关闭内联优化:** -gcflags “-N -l”**。可以在go get/build/test的时候指定...

2019-08-23 17:01:36 624

原创 golang学习系列——3. 运行机制

1. go"虚拟机"尽管 Go 编译器产生的是本地可执行代码,这些代码仍旧运行在 Go 的 runtime(这部分的代码可以在 runtime 包中找到)当中。这个 runtime 类似 Java 和 .NET 语言所用到的虚拟机,它负责管理包括内存分配、垃圾回收、栈处理、goroutine、channel、切片(slice)、map 和反射(reflection)等等。runtime 主...

2019-08-23 16:40:04 562

原创 golang学习系列——2. 环境搭建

目录编译器文件扩展名与包(package)Go 环境变量在 Linux 上安装 Go其他版本的安装安装目录清单——————————————————我是华丽的分割线——————————————————编译器Go 原生编译器 gc 和非原生编译器 gccgo,这两款编译器都是在类 Unix 系统下工作 。其中,gc 版本的编译器已经被移植到 Windows 平台上,...

2019-08-23 16:06:52 177

原创 golang学习系列——1. go语言的特点

本系列文章仅作为学习记录,内容包括引用内容,以及个人观点等,如有意见请留言指正—————————————————我是华丽的分割线———————————————————————目录go语言概述发展目标语言特性用途特性缺失小节go语言概述发展目标1. 结合静态语言的安全和高效性, 以及动态语言的易开发性,吸取二者的优点便于开发 Go 语言是一门类型安...

2019-08-23 14:57:57 265

转载 内存管理解析(2) 字节对齐详解

很想贴出转载链接, 找不到原来看的资料了, 只有从个人记录的笔记上挪过来, 如有错误请留言指正目录一. 什么是字节对齐二. 为什么要字节对齐三. 有哪些对齐形式1. 结构体对齐对齐值:对齐准则:对齐的隐患:更改对齐方式2. 栈内存对齐3. 位域对齐位域说明使用场景对齐规则注意事项四. linux内存分配对齐一. 什么是字节对...

2019-06-21 15:41:11 1416

转载 内存管理解析(1) 内存映射与堆内存管理

本文转载链接:http://blog.codinglabs.org/articles/a-malloc-tutorial.html目录一. 预备知识1. 虚拟内存地址和物理内存地址2. 页与地址构成3. 内存页与磁盘页二. Linux进程级内存管理1. 内存排布2.Heap 内存模型3. 堆内存管理实现原理一. 预备知识1. 虚拟内存地...

2019-06-20 23:42:26 609

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除