自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Go语言---sync 包

sync包提供基本的同步原语,如互斥锁。 除了Once和WaitGroup类型之外,大多数类型都是供低级库例程使用的。经过通道和通信可以更好地完成更高级别的同步。互斥锁互斥锁用来保证在任一时刻,只能有一个线程函数访问某对象,保证共享数据的安全性防止竞态。Mutex 的初始值为解锁状态。Mutex 通常作为其它结构体的匿名字段使用,使该结构体具有 Lock 和 Unlock 方法。  Mutex 可...

2018-05-11 23:13:34 958

转载 Go并发编程总结

最近一直在看Go语言的并发编程,主要的书籍是 <Go语言学习笔记>。看完之后,看到网上这篇博客总结的不错,所讲的内容学习笔记上都有。Golang :不要通过共享内存来通信,而应该通过通信来共享内存。这句风靡在Go社区的话,说的就是 goroutine中的 channel。他在go并发编程中充当着类型安全的管道作用。1、通过golang中的 goroutine 与sync.Mutex进行...

2018-05-11 17:30:45 8120 4

原创 Go语言---fmt包

占位符普通占位符占位符 说明 举例 输出%v 相应值的默认格式。 Printf("%v", site),Printf("%+v", site) {...

2018-05-10 15:38:22 3477

原创 Go语言---unicode/utf8 unicode/utf16包

unicode/utf8包utf8实现了函数和常量来支持UTF-8编码的文本。它包括在runes和UTF-8字节序列之间转换的函数。utf8里面的函数就有一些字节和字符的转换。//判断是否符合UTF编码的函数// Valid 判断 p 是否为完整有效的 UTF8 编码序列。func Valid(p []byte) bool// ValidRune 判断 r 能否被正确的转换为 UTF8 编码...

2018-05-10 11:22:10 6497

转载 Go语言 — Unicode码点包

unicode介绍Unicode只是定义了一个字符和一个编码的映射,但是呢,对应的存储却没有制定。 比如一个编码0x0041代表大写字母A,那么可能有一种存储至少有4个字节,那可能0x00000041来存储代表A。 这个就是unicode的具体实现。unicode的具体实现有很多种,UTF-8和UTF-16就是其中两种。UTF-8表示最少用一个字节就能表示一个字符的编码实现。它采取的方式是对不同的...

2018-05-09 23:00:28 5393

原创 Go语言---strconv包

包strconv主要实现对字符串和基本数据类型之间的转换。基本数据类型包括:布尔、整型(包括有/无符号、二进制、八进制、十进制和十六进制)和浮点型等。------------------------------------------------------------------------------------------------------------strconv 包转换错误处理字符...

2018-05-09 20:28:16 21874

转载 Go语言---bytes包

该包定义了一些操作 byte slice 的便利操作。因为字符串可以表示为 []byte,因此,bytes 包定义的函数、方法等和 strings 包很类似,所以讲解时会和 strings 包类似甚至可以直接参考。 []byte 为 字节切片,byte---uint8类型。官方网址对这个包都有详细的示例,有助于更好地理解和使用。-----------------------------------...

2018-05-09 11:24:37 9643

转载 Go语言---strings包(字符串操作)

strings标准库包主要涉及字符串的基本操作。常见字符串的操作有:字符串求长度求子串是否存在某个字符或者子串子串出现的次数(字符串匹配)字符串分割(切分)成[]string字符串是否存在某个前缀或后缀字符或者子串在字符串中首次出现的位置或最后一次出现的位置通过某个字符串将[]string进行拼接字符串重复次数字符串中子串替换大小写转换......................等等一些基本操作。...

2018-05-08 21:57:58 39931 1

转载 Golang string和[]byte的对比

转载网址:https://www.cnblogs.com/zhangboyu/p/7623712.html为啥string和[]byte类型转换需要一定的代价?为啥内置函数copy会有一种特殊情况copy(dst []byte, src string) int?string和[]byte,底层都是数组,但为什么[]byte比string灵活,拼接性能也更高(动态字符串拼接性能对比)?今天看了源码探...

2018-05-08 15:41:56 10586

转载 Go错误处理---errors包以及Go记录日志---log包

Go错误处理---errors包1、error接口Go语言引入了一个关于错误处理的标准模式,即error接口,该接口定义:type error interface { Error() string } 对于大多数函数,如果要返回错误,大致可以定义为如下模式,将error作为多种返回值中的最后一个,但这并非是强制要求:func Foo(param int)(n int, err err...

2018-05-07 18:10:20 11122

原创 Go面向对象---音乐库案例

案例目的   演示Go语言面向对象编程特性,设计音乐播放器程序,此程序仅仅只是演示面向对象特性。关键流程:(1) 音乐库功能:使用者可以查看、添加和删除里面的音乐曲目;(2)、播放音乐;(3)、支持MP3和WAV,但也能随时扩展支持更多的音乐类型;(4)、退出程序。    程序主要接受以下命令(1)、音乐库管理命令:lib,包括list/add/remove命令(2)、播放管理:play命令,pl...

2018-05-07 14:52:41 645

原创 Go语言---函数返回局部变量地址

一、C语言中返回函数中局部变量值和指针(1) 在C语言中,一个函数可以直接返回函数中定义的局部变量,其实在函数返回后,局部变量是被系统自动回收的,因为局部变量是分配在栈空间,那为什么还可以返回局部变量,其实这里返回的是局部变量的副本(拷贝)。(2) 函数返回局部变量地址:局部变量内存分配在栈空间,因为函数返回后,系统自动回收了函数里定义的局部变量,所以运行时去访问一个被系统回收后的地址空间,一定就...

2018-05-05 21:10:52 7002 1

转载 《Go语言编程》---"面向对象编程"

面向对象编程Go 语言的面向对象编程(OOP)非常简洁而优雅。说它简洁,简介之处在于,它没有了OOP中很多概念,比如:继承、虚函数、构造函数和析构函数、隐藏的this指针等等。说它优雅,是它的面向对象(OOP)是语言类型系统(type system)中的天然的一部分。整个类型系统通过接口(interface)串联,浑然一体。类型系统(type system)很少有编程类的书籍谈及类型系统(type...

2018-05-05 17:31:13 519

转载 go是面向对象语言吗?

转载链接:https://segmentfault.com/a/1190000001832282#articleHeader5原文链接:http://spf13.com/post/is-go-object-oriented前言面向对象的含义引入了对象(object)、类(class)、继承(inheritance)、子类(subclass)、虚方法(virtual method)、协程(corou...

2018-05-05 15:02:41 19355 1

转载 go new和make的区别

Go语言中的内建函数new和make是两个用于内存分配的原语(allocation primitives)。简单来说,new只分配内存,make用于slice,map,和channel的初始化。 内置函数new按指定类型长度分配零值内存,返回指针,并不关心类型内部构造和初始化方式。内置函数make对引用类型进行创建,编译器会将make转换为目标类型专用的创建函数,以确保完成全部内存分配和相关属性初...

2018-05-04 21:16:14 7370

原创 Go语言中的值类型和引用类型

一、值类型和引用类型值类型:int、float、bool和string这些类型都属于值类型,使用这些类型的变量直接指向存在内存中的值,值类型的变量的值存储在栈中。当使用等号=将一个变量的值赋给另一个变量时,如 j = i ,实际上是在内存中将 i 的值进行了拷贝。可以通过 &i 获取变量 i 的内存地址。  值拷贝引用类型:特指slice、map、channel这三种预定义类型。引用类型拥...

2018-05-04 20:50:10 7447 2

原创 golang-闭包实例详解

一、闭包的概念闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。或者说是函数和其引用环境的组合体。闭包的概念可以直接百度或者google详细搜索详细,这里主要是通过几个实例来对闭包进行详解。二、闭包实例详解实例1//函数片段func add(base int) func(int) int { fmt.Printf("%p\n", &bas...

2018-05-04 19:23:21 13862 1

空空如也

空空如也

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

TA关注的人

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