- 博客(8)
- 收藏
- 关注
原创 "死循环"Socket服务端、支持浏览器输出
1、把我们前面写的socket服务,改为循环监听 // 死循环中 for { // 接收客户端的消息 client, err := listener.Accept() if err != nil { fmt.Println(err) return } func(c net.Conn) { defer c.Close() // 读取客户端消息 ...
2019-06-30 09:39:54 510
原创 创建最简单的Socket服务端和客户端代码
1、服务端代码package mainimport ( "fmt" "net")func main() { // 创建监听 listener,err := net.Listen("tcp","127.0.0.1:9111") if err!=nil { fmt.Println(err) return } defer listener.Close() fmt.P...
2019-06-30 09:05:38 1079 1
原创 协程通信之认识channel、阻塞
channel类型这是go里面的核心数据类型,有了它我们可以方便的进行协程间数据通信。其原理来源于csp模型理论,go实现了部分理论。简单说,csp模型由并发执行的实体(如进程或线程)组成,实体之间通过发消息进行通信,其中channel承担了实体和实体之间发送消息的通道。在go里面goroutine就是实体,它里面也有个channel来完成通信。// 定义一个函数func sum(num...
2019-06-10 21:48:28 2257
原创 mysql调用(4): 查询返回通用map(字典)、可变参数用法
// 取出所有列 cols,_ := rows.Columns() // 定义所有行的大切片 allRows := make([]interface{},0) // 定义单独一行大小切片 oneRow := make([]interface{},len(cols)) scanRow := make([]interface{},len(cols)) for rows.Next(...
2019-06-09 20:15:05 1148
原创 mysql调用(3): 查询返回通用数组、空接口使用、类型断言、range
1、什么是空接口type all interface {}任何类型都可以是空接口var i all = UserModel{}var i all = 123var i all = "abc"如果不给它赋值,它里面每一项都是一个nil。var i interface{} = "hello"fmt.Println(i) // 打印:hello把它弄成切片var list ...
2019-06-09 18:37:23 326
原创 mysql调用(2):入门slice切片、查询返回实体集合
我们知道数组长度一旦定义就不能改变。所以我们今天需要另外一个数据类型:slice1、定义一个结构体// 定义一个结构type UserModel struct { Name string Age int}2、主要代码// 定义一个UserModel类型的切片 users := []UserModel{} // for循环 for rows.Next() { // ...
2019-06-09 18:06:53 1932
原创 集成mysql驱动、调用数据库、查询数据
1、安装第三方mysql驱动包go get -u github.com/go-sql-driver/mysql2、连接数据库基本代码package mainimport ( _"github.com/go-sql-driver/mysql" // 注意前面的下划线_, 这种方式引入包只执行包的初始化函数 "database/sql" "fmt")func main() ...
2019-06-09 17:45:02 185
原创 go-使用第三方包 json化结构体
前提条件:安装好操作系统对应的gitgo get -u github.com/pquerna/ffjson-u参数:如果本地已经存在该包,则强制更新。1、既然是把结构体转为json字符串,那么先来定义一个结构体// 定义一个结构体type NewsModel struct { Id int Title string}2、且看ffjson这包用什么方法来把结构体转为json字符...
2019-06-09 17:00:28 736
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人