Golang
ltk80
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
go输出dll的关键
package mainimport "C"import "fmt"//export PrintByefunc PrintBye() { fmt.Println("From DLL:Bye!")}//export Sumfunc Sum(a int, b int) int { return a + b}func main() {}1、红色的注释是必须的,函数无法导出2、main函数也是必须的在命令行调用go build -buildmo...原创 2020-12-05 12:09:51 · 479 阅读 · 0 评论 -
go学习(6)interface接口
interfaceGo语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被interface的巧妙设计所折服。什么是interface简单的说,interface是一组method的组合,我们通过interface来定义对象的一组行为。interface类型interface类型定义了一组方法,如果某个对象实现了某个接口的所有...转载 2018-09-30 10:37:20 · 202 阅读 · 0 评论 -
一个压缩接口实现
一、首先定义一个压缩接口,以便支持不同的压缩方式//压缩接口,压缩类需要实现以下两个方法type Compressor interface { Compress(b []byte, c []byte) ([]byte, error) //压缩数据 Decompress(c []byte, b []byte) error //解压缩数据}//工厂类,创建不...原创 2019-01-13 16:21:24 · 1070 阅读 · 0 评论 -
Golang百万级高并发实践
写在前面Go语言作为新兴的语言,最近发展势头很是迅猛,其最大的特点就是原生支持并发。它使用的是“协程(goroutine)模型”,和传统基于 OS 线程和进程实现不同,Go 语言的并发是基于用户态的并发,这种并发方式就变得非常轻量,能够轻松运行几万并发逻辑。Go 的并发属于 CSP 并发模型的一种实现,CSP 并发模型的核心概念是:“不要通过共享内存来通信,而应该通 过通信来共享内存”。...转载 2018-12-17 11:09:26 · 1679 阅读 · 0 评论 -
golang接口的强制转换
在golang中接口相当于一个万能对象,和c++的auto差不多,比如定义一个存任何对象的map:type mymap map[int]interface{} //以int为key,值可以存任何类型type mydata struct { id int name string}func main(){ mm:= make(mymap) data1:= m...原创 2018-10-25 15:27:00 · 8968 阅读 · 2 评论 -
go学习(9)string字符串函数
常用字符串操作函数类型转换比较对比搜索 查找 统计替换删除过滤大小写转换前缀后缀字符串分割拼接中拼接字符串方式对比package mainimport ( "bytes" "fmt" "strconv" "strings" "time")func main() { fmt.Println("字符串测试") fmt.Pr转载 2018-09-30 18:00:02 · 2074 阅读 · 0 评论 -
go学习(8)TCP编程
go网络编程简单易上手,tcp可以很容易实现一个客户端一个线程(goroutine),业务处理清楚明了。服务端:package mainimport ( "fmt" "net")const ( MAX_MSG_LENGTH = 1024 //每次最大收多少数据)//处理玩家数据func Echo(c net.Conn) { fmt.Printf("Client ...原创 2018-09-30 17:43:09 · 220 阅读 · 0 评论 -
go调用windows api
golang调用windows的api函数,方法: import ( "fmt" "syscall" "unsafe")func abort(funcname string, err int) { panic(funcname + " failed: " + syscall.Errno(err).Error())}var ( kernel32, _ = ...转载 2018-10-09 15:04:44 · 3683 阅读 · 0 评论 -
go学习(7)struct 结构体
structGo语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器。例如,我们可以创建一个自定义类型person代表一个人的实体。这个实体拥有属性:姓名和年龄。这样的类型我们称之struct。如下代码所示:复制代码 代码如下:type person struct { name string age int}看到了吗?声明一个st...转载 2018-09-30 10:43:53 · 187 阅读 · 0 评论 -
go学习(10)并发读写访问map问题
Golang 里面 map 不是并发安全的,这一点是众所周知的,而且官方文档也很早就给了解释:Why are map operations not defined to be atomic?. 也正如这个解释说的一样,要实现一个并发安全的 map 其实非常简单。并发安全实际上,大多数情况下,对一个 map 的访问都是读操作多于写操作,而且读的时候,是可以共享的。所以这种场景下,用一个 sy...转载 2018-10-01 23:20:59 · 1796 阅读 · 0 评论 -
go学习(5)协程
如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人。go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据。以下是我入门的学习笔记。首先,并行!=并发, 两者是不同的。Go语言的goroutines、信道和死锁goroutineGo语言中有个概念叫做goroutine, 这类似我们熟知的...转载 2018-09-30 10:17:16 · 232 阅读 · 0 评论 -
go学习(4)函数
函数是基本的代码块,用于执行一个任务,是构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。函数定义函数其实在之前已经见过了,第一次执行hello world程序的main()其实就是一个函数,而且是一个比较特殊的函数。每个go程序都是从名为main的package包的main()函数开始执行,包的概念不是这里的重点,以后做...转载 2018-09-30 09:58:42 · 590 阅读 · 0 评论 -
go学习(3)常用代码块
1、打印fmt.Println("asd")fmt.Printf("asd\n")fmt.Printf("asd is %s\n","aaa") 2、string和int互转strconv.Itoa(1) //转字符串strconv.Atoi("1") //转int 3、格式化日期time.Now().Format("20060102150405.转载 2018-09-30 09:10:30 · 451 阅读 · 0 评论 -
go学习(2)基础语法
1、标识符标识符首字母大写: 定义标识符如(常量、变量、类型、函数名、结构字段,接口)如果以一个大写字母开头,如:Group1,哪么使用这种形式的标识符的对象就可以被外部包的代码所使用(要使用需要先导入这个包),这种定义被称为导出(如c++类的public)。标识符首字母小写: 以小写字母开头,则对包外是不可见的,但是在整个包的内部是可见可访问的(如c++类...原创 2018-09-29 17:48:48 · 282 阅读 · 0 评论 -
go学习(1)开发环境安装
1,首先下载golang源码安装包(https://www.golangtc.com/download),windows版本一般为 go1.9.2.windows-amd64.msi,直接运行安装,默认安装到C:\Go,安装完后设置系统PATH,增加C:\Go2、下载开发环境liteide,(https://www.golangtc.com/download/liteide ),选择...原创 2018-09-29 17:25:48 · 307 阅读 · 0 评论 -
go学习(11)收集,积累,整理
1、包管理及搜索假如你的项目main包在c:\test1下,gopath也包含了该目录,你要新加一个包,包名test,步骤如下:一、在c:\test1\新建一个目录,lib(梨子,为什么要新建目录,因为go中同一个目录中不允许有不同的包名)二、在main中引入包,import ("test1/lib"),这里不能用相对路径或绝对路径三、在代码中就可以使用lib下的test包了,.....原创 2018-10-08 11:05:44 · 247 阅读 · 0 评论 -
函数及函数指针
1、匿名函数及函数变量的使用package mainimport "fmt"func main() { f:= func(n int) error { //匿名函数及函数指针定义 fmt.Println(n) return nil } f(1) //指针函数变量调用函数}//print 12、通过map存放函数指针,及调用package ma...原创 2018-10-13 10:53:40 · 257 阅读 · 0 评论 -
接口或结构体的嵌套(struct,interface)
1、结构体的嵌套一package mainimport "fmt"type Person struct { name string}type Student struct { class int person Person //定义person 类型为Person}func main(){ s := Student{1,Person{"xiaomi...转载 2018-10-12 09:54:30 · 1882 阅读 · 0 评论
分享