自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 tdengine使用感受

tdengine

2023-01-05 22:52:41 1724 1

原创 离线笔记软件

离线笔记同步实战

2022-11-08 10:20:01 2159

原创 Go教程(十三)goroutine和channel

一次只做一件事情并不是完成任务最快的方法.一些大的任务可以拆解成若干个小任务.goroutine可以让程序同时处理几个不同的任务.goroutine使用channel来协调它们的工作.channel允许goroutine互相发送数据并同步.这样一个goroutine就不会领先于另一个goroutine.它允许我们充分利用具有多处理器的计算机,让程序运行得尽可能的快.多任务我们有a.txt,b.txt,c.txt三个文件,我们需要读取它们的内容至内存,然后再计算它们的大小package mainim

2022-04-02 09:06:53 693

原创 Go教程(十二)接口

在Go中一个接口被定义为特定值预期具体的一组方法,后面跟一个{},内部有一组方法,以及方法期望参数和返回值.可以把接口看作需要struct实现的一组行为.接口定义type myInterface interface { method() // 无参数无返回值的方法 methodWithParam(float64) // 带参数的方法 methodWithReturn() string // 带返回值的方法}一个拥有接口定义的所有方

2022-03-31 07:37:25 482

原创 Go教程(十一)定义方法

在Golang中不支持重载.不支持类,但是支持自定义方法方法定义和函数定义很像,它们实际上只有一点不同,就是在函数的前面增加一个额外的叫做接收器的参数名称和类型即可type MyType string// m 接收器参数名称 Mytype 接收器参数类型func (m MyType) foo(n int) { fmt.Println("from ",m, " get n", n)和任何其他函数一样,需要提供一个接收器参数的名称,后面跟上其类型为了调用你定义的方法,输入你要调用的方法的值,一

2022-03-28 16:54:25 607

原创 Go教程(九)结构体嵌套

无论是数组,切片还是映射,它们的值都只能保存同一种类型.如一个切片变量的所有元素只能是int,而不是有string,这个和动态语言Python,Javascript不同.一个映射变量的所有键只能是string,而不是一些是int.在实际项目过程中,肯定是会遇到这种组合类的变量的,比如学生信息name := "张三"age := 18sex := 1address :="大铁岭"Go里面有一个叫struct的结构体可以把多种不同类型的变量联合起来struct类型struct是一个由不同

2022-03-28 16:51:16 812

原创 Go教程(八)结构体

无论是数组,切片还是映射,它们的值都只能保存同一种类型.如一个切片变量的所有元素只能是int,而不是有string,这个和动态语言Python,Javascript不同.一个映射变量的所有键只能是string,而不是一些是int.在实际项目过程中,肯定是会遇到这种组合类的变量的,比如学生信息name := "张三"age := 18sex := 1address :="大铁岭"Go里面有一个叫struct的结构体可以把多种不同类型的变量联合起来struct类型struct是一个由不同

2022-03-27 16:47:47 418

原创 Go教程(七)映射

映射是通过键值访问的一个集合.一个映射通过键来访问它存储的值.键是一个简单的从映射中找出值的方式.就像是书前面的索引一样.键可以看作是值的索引相对于数组和切片只能用整数作为索引不同,映射可以作用任何可以使用==操作符的类型作为键,如数字,字符串等等,所有的键类型必须相同,所有的值也必须是同一类型.但是键和值不必是相同的类型.比如键是字符串,值是浮点数声明映射的代码如下var 变量名 map[key_type]value_type这里的var 和map都是go中的保留关键字.// 先声明后创建va

2022-03-27 09:12:56 539

原创 Go教程(六)切片

Golang中的切片是对数组的抽象和封装,切片的长度和容量不是固定的,是可以动态增加的切片声明var mySlice []int字面量初始化切片mySlice1 := []int{1, 2, 3}fmt.Println(mySlice1)这里和数组的区别很明显的是数组只需要在[]里面填个值就成了数组,不填,则是切片切片运算符与Python相同,切片可以进行切片操作Slice[startIndex : endIndex] 将返回一个新切片sl1 := mySlice1[0 : len

2022-03-26 22:28:33 987

原创 Go教程(十)函数

函数是由一行或多行代码组成的集合, 你可以在程序中其它位置调用它.Go允许我们定义自己的函数func Foo(){ fmt.Println("hi")}函数声明以关键字func开头,后跟函数名,一对()来接受可选的参数,然后是包含函数代码的{}一旦声明了一个函数你就可以在程序的其他地方调用它.只需要输入它的名字即可.当执行foo时,我们没有在函数名之前加包名.在调用当前包中定义的函数时,是不需要指定包名的.函数命名规则:必须以字母开头,后跟数量和字母名称以大写开头的函数是可导出的,

2022-03-26 08:55:07 872

原创 Go教程(五) 数组

数组是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element),这种类型可以是任意的原始类型,比如 int、string 等,也可以是用户自定义的类型。一个数组包含的元素个数被称为数组的长度。在 Golang 中数组是一个长度固定的数据类型,数组的长度是类型的一部分,也就是说 [5]int 和 [10]int 是两个不同的类型。Golang 中数组的另一个特点是占用内存的连续性,也就是说数组中的元素是被分配到连续的内存地址中的,因而索引数组元素的速度非常快。Golang 数组的特点

2022-03-26 08:45:14 2563

原创 Go教程(四)For 循环

循环以for开头,后面跟四段控制代码初始化语句,用于初始化变量(可选)条件表达式,用于决定何时中止一个标志,用于循环后的每次迭代的步进(可选)循环块例1package mainimport "fmt"func main() { // x := 1; 初始化变量 // x <5; 条件表达式,决定该循环何时中止 // 标志位代表 x++迭代步进 // {为循环块的开始 }循环块结束 for x := 1; x < 5; x++ { fmt.Pr

2022-03-26 08:42:04 425

原创 Go教程附录(一)指针

为什么放附录?因为指针确实稍微涉及到一些计算机底层和硬件相关的知识,不想过早介绍,这里我们不深入,供参考,go的指针已经非常的简洁.比较容易掌握,也安全.指针存在的意义是指向存值的内存地址Golang中所有的变量都可以取出地址变量,就是一块内存区域中存储的值。整型,字符串,数组,struct,都可以取到地址.使用地址运算符&可以取到变量的内存地址import "fmt"func Test() { a := 6 // &a表示一个地址 fmt.Println("addr

2022-03-21 09:11:13 541

原创 Go教程(三)条件表达式

go的条件控制有以下几种ifif 表达式 { // 当表达式为true的时候,才执行代码块 **注意这里没有()** 代码块}if…elseif 表达式{ 代码块} else { // 当if的表达式为false进入这里 代码块}if…else if…elseif 表达式{ 代码块} else if 表达式{ 代码块} else{ 代码块}请参考go module来配置工程package mainimport ( "fmt")func

2022-03-21 08:58:38 522

原创 Go教程(十二)接口

在Go中一个接口被定义为特定值预期具体的一组方法,后面跟一个{},内部有一组方法,以及方法期望参数和返回值.可以把接口看作需要struct实现的一组行为.接口定义type myInterface interface { method() // 无参数无返回值的方法 methodWithParam(float64) // 带参数的方法 methodWithReturn() string // 带返回值的方法}一个拥有接口定义的所有方

2022-03-20 16:40:26 198

原创 Go教程(二)类型转换

Go语言是静态强类型语言go语言中的数学和比较运算必须是相同类型的变量,否则会报错。为变量赋值也必须是相同类型的变量length := 6.4var width int = 2length = width // 报错,赋值的左右两边类型不同fmt.Println("area is", length * width) // 报错,运算的类型不同,一个是float64一个是int解决方法是对类型进行转换一 基本数据类型之间的转换int,err:=strconv.Atoi(string)

2022-03-20 16:35:20 705

原创 Go入门教程(一)语法基础

go语言的hello world请参考go module来配置工程以下是hello.go文件package mainimport "fmt"func main() { fmt.Println("hello world")}在控制台执行go run hello.go得到如下输出hello world以下是解释// 每个go文件必须以package <包名>开始,包名为main说明这是程序入口点// 可以执行在控制台运行package main// im

2022-03-06 21:07:18 341

原创 go module

GO ModuleGO111MODULE=on以上是开启go modules的前提条件之一,另外要go 1.17版本以上Go Modules 方式下载下来的第三方库位在 $GOPATH/pkg/mod 文件夹里面使用go mod 管理项目,就不需要非得把项目放到GOPATH指定目录下,你可以在你磁盘的任何位置新建一个项目,比如:D:\goproj\modtest这个不在我们的GOPATH中,以下指令初始化新module块go mod init <packagename>看到

2022-02-24 08:48:27 623

原创 Go一定要理解的环境概念

输入go env会出现一系列GO相关的环境变量,其中几个重要的go envGOPATH=d:\goGOROOT=f:\goGO111MODULE=onGOROOTGOROOT就是我们Go语言的安装路径。我这里是 GOROOT=f:\go打开这个文件夹,可以看到[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传src, bin, pkg三个文件夹,标准的Go语言代码库中包含了大量的包,并且在安装 Go 的时候多数会自动安装到系统中。我们可以在$GOROOT/src

2022-02-24 08:47:38 288

原创 windows上交叉编译go程序

linux新建 linux.bat@echo offset CGO_ENABLED=0 set GOOS=linuxset GOARCH=amd64go build -o ./bin/linux/test新建windows.bat@echo offset CGO_ENABLED=1 set GOOS=windowsset GOARCH=amd64go build -o ./bin/windows/test.exe需要编译对应平台的就用执行对应平台.bat...

2022-02-23 22:35:09 679

原创 VSCode调试go

几个关键配置天朝一定要设置GOPROXY,否则所有插件都无法安装set GO111MODULE=onset GOPROXY=https://goproxy.cn,directset GOROOT=f:\go // 这个是安装的时候自动设置windows上的设置如下所示在VSCode中打开插件,然后搜索Go,安装RichGo安装完成后,找个文件夹新建一个Go工程D:\goproj\debugtestPS D:\goproj\debugtest> go mod init debu

2022-02-20 21:57:53 4105

原创 firefly框架分析之netconnect package(一)

firefly下的目录结构如下:里面的各个包将会一一的介绍,今天先开始看看netconnect包该包下面这些模块从connection开始Connection.py: 与客户端的连接对象,通过其与客户端通讯,向客户端发送封装过的数据,还可以主动断开连接classConnection loseConnection(self):''断开与客户端的连接 saf

2020-10-10 23:27:01 961

原创 firefly框架分析之netconnect package(三)

manager.py库 用来管理connection连接class ConnectionManager: 包括一个管理connection对象的字典def getNowConnCnt(self): 获取当前连接数量def addConnection(self, conn): 根据conn创建connection对象,并加到字典中

2020-10-10 21:26:29 1170

转载 yum换源

1 备份一下原本的yum源:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2 下载阿里云的yum源【我下的是CentOS7的,如果需要其他版本,那么只需要将下面的7改成5或6即可】【这一步需要能联网】:wget -O /etc/yum.repos.d/CentOS-Base.repo...

2020-03-29 15:35:47 147

原创 .vue文件中 import xxx from '@/xxx' 中@含义

@的定义在 vue.config.js中'use strict'const path = require('path')const defaultSettings = require('./src/settings.js')function resolve(dir) { return path.join(__dirname, dir)}const name = defaultS...

2019-08-28 22:06:23 4378

原创 Nginx配置负载均衡

Nginx有以下几种负载均衡方式轮询(默认)如上图所示,轮询会按123的顺序访问每个后台服务器,当后台服务器出现问题时需要自行处理upstream backservers { server 192.168.10.12; server 192.168.10.13; } 权重upstream backservers { server 192.168.10.12 weight=10;...

2019-07-10 13:14:46 122

原创 nginx设置反向代理

正向代理正向代理是指 A无法访问到C 通过B以后可以访问到C 就叫正向代理举个粟子A想要买一台最新的MAC PRO,但是只有米国有一家店S,A无法去到米国。B在米国,能到S店可以买,所以A委托B进行购买。S店的人不知道最终会把产品卖给A,只知道卖给了B,S店的人也根本不知道有A这个人。所以A通过B代购了C的货,可以把中间这个代购人看成作正向代理。A知道有S店,也知道B是代购。反向代...

2019-07-04 10:19:47 256

原创 nginx常用模块说明

nginx.conf配置nginx.conf 默认安装在 prefix/conf/ngix.conf里面nginx配置文件主要分成以下几大块main全局设置其指令将影响其他所有部分的设置server服务器主机设置其指令主要用于指定虚拟机域名、IP、端口upstream上游服务器设置,主要为反向代理、负责均衡相关设置其指令主要用于设置一系列的后端服务器,设置反向代理以及后端服务...

2019-06-30 13:17:34 407

原创 ngix的配置

通过ngnix的docker仓库拉取的镜像运行以后会产生以下的目录/usr/share/nginx/html 这里ngix下面的html默认访问页面/etc/nginx/nginx.conf nigx的配置/etc/nginx/conf.d/default.conf ngix的默认配置/var/log/nginx/ ngix的日志文件可以使用以下指令来做路径挂载-v /usr/loc...

2019-06-24 15:39:34 746

原创 使用docker安装nginx

这里推荐使用dockr安装nginx了,这个真的非常方便在mac上一句brew install nginx在centos上就要大费周张现在两边一致。直接docker pull ngnix一切搞定然后使用查看本地镜像docker imagesREPOSITORYdocker.io/ngnix启动ngnixdocker run --rm --name myngix -p 49...

2019-06-21 16:18:57 117

转载 《了不起的Node.js》摘要 JavaScripts概览(三)

V8中的JavaScript随着Chrome浏览器的发布,带来了全新的JavaScript引擎V8,它以极快的速度运行,加之时刻保持最新并支持最新ECMAScript特性的优势,快速地在浏览器中占据了重要的位置。其中有些特性弥补了语言本身的不足。另外一部分特性的引入则要归功于像jQuery/PrototypeJS这样的前端类库,因为它们提供了非常实用的扩展和工具。Object Keys要想...

2019-05-23 13:44:56 107

转载 了不起的node.js(二)

类JavaScript中没有class关键词,类只能通过函数定义:function Animal() {}要给所有Animal的实例定义函数, 可以通过prototype属性来完成:Animal.prototye.eat = function(food){ //eat method}这里值得一提的是,在prototype的函数内部,this并非像普通函数那样指向global对象...

2019-05-17 11:10:01 486

转载 《了不起的Node.js》摘要 JavaScripts概览(一)

介绍JavaScript是其于原型、面向对象、弱类型的动态脚本语言。它从函数式语言中借鉴了一引强大的特性,如闭包和高阶函数,这也是JavaSccript语言本身有意思的地方。从技术层面上来说,JavaScript是根据ECMAScript语言标准来实现的。这里有一点非常重要:由于Node使用了V8引擎的原因,其实现很接近标准,另外,它还提供了一些标准之外实用的附加功能。换句话说,在Node中书...

2019-05-06 10:36:56 130

原创 简书开通

https://www.jianshu.com/u/59aeb33f00b9 我的简书地址

2018-05-20 18:32:54 1089 1

原创 增加python模块

现在AI火到爆啊 接着将增加python模块,用于学习AI的入门 为什么是python 现在python有好多支持AI算法的模块,不必我们重复造轮子。 极大的减少时间成本。:)https://www.processon.com/i/568c6ea4e4b0e51d149a085f 这个网站解决了大家开始设计阶段的问题,轻量级的各种设计模型,强烈推荐。

2018-01-10 10:59:17 322

原创 cocos creator动态更换纹理

有2种办法。 1 是预先准备好所有的纹理,然后放到编辑器中,绑定到对应的脚本。 替换的时候只需要将目标的spriteFrame=source.spriteFrame即可。把图片拖到编辑器中 创建一个数组,创建当前的要替换纹理索引 imgIdx : 1, sprArray :{ default:[], type:[cc.Sprite],

2017-12-15 16:10:27 15486

原创 lua table的使用及坑

lua的table是一个集合,在lua中table被设计成为超级英雄,无论什么东东都可以往里面塞,用起来非常方便。 table的几个常用方法是table.inserttable.remove一个加元素,一个减元素。 对于加元素也可以直接使用key:value对应的赋值法 如a={} --a是一个tablea[888]=9table.insert(a,5)#a --此时得到了长度是1

2017-11-21 10:41:38 5260

原创 慎用skynet.fork做循环

skynet.fork做循环时,若在其中一次发生了脚本错误。那么将造成此循环僵死,不再进行下去。 建议使用skynet.timeout来进行无限循环以及计时器的实现。 如果一定要用skynet.fork,请使用pcall

2017-07-10 10:47:48 2384

原创 skynet的并发处理

skynet是一个异步响应的单进程多协程系统。 在skynet的服务中,如果调用了一个阻塞API(skynet.call skynet.sleep),这个服务将会被挂起。在阻塞返回之前,这个服务仍然 可以响应其他消息。这个就会造成时序问题了。 以下为例local CMD = {}function CMD.func1() print('------func1 1') print(

2017-04-27 16:37:45 3866

原创 quickcocos2dx资源丢失的巨坑

这个现象在IOS的机器上发生频率高于安卓机器 当设备内存非常小的时候,我们游戏中的某些应该渲染出来的资源全都消失掉了。 而且这些资源有一个特征,全是plist的图集。 在程序内部没有释放图集的地方,所以想到应该是cocos自己释放掉的。 果然在它内部判断内存不足的时候会自动释放他认为没有用的图集。 所以需要在检查到无此图集的时候再次进行添加 local frame = display.ne

2017-04-26 21:48:13 1105

空空如也

空空如也

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

TA关注的人

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