- 博客(92)
- 资源 (1)
- 收藏
- 关注
原创 go反射生成指定类型的结构体数组
上面已经有非常详细的代码注解了,所以也不用太多的解释,如有不明白的地方,可以直接留言沟通。反射生成结构体数组 根据传入类型生成对应数组。生成string类型的数组。使用golang语言。
2023-02-03 11:09:26
654
原创 go反射生成指定类型的结构体切片,并赋值
上面已经有非常详细的代码注解了,所以也不用太多的解释,如有不明白的地方,可以直接留言沟通。反射生成结构体切片 根据传入类型生成对应切片, 并把值放到切片里。生成string类型的切片。使用golang语言。生成结构体切片并赋空值。生成结构体切片,并赋值。
2023-02-03 11:02:03
1070
原创 go反射调用结构体对象方法
上面已经有非常详细的代码注解了,所以也不用太多的解释,如有不明白的地方,可以直接留言沟通。golang语言使用反射机制,调用结构体相关方法,方法包含传参和返回结果。
2023-02-03 10:53:37
264
原创 golang chan被关闭后读写的那点事
func main() { closeReadChan() closeWriteChan() closeReadChan2()}// 从有缓冲被关闭的chan写数据, 报错: panic: send on closed channelfunc closeWriteChan() { wg := sync.WaitGroup{} ch := make(chan int, 100) wg.Add(2) go func() { defer w.
2021-11-02 20:12:21
519
原创 golang实现协程之间的调用栗子
题目:有一个独立的do方法输出“do”的字样, 有3个协程;A协程里触发B协程输出10次do字样,随后B协程告诉A协程做完10次输出,接着A协程输出一次do字样,接着A协程触发C协程关闭B协程,随后C协程关闭, A协程关闭。package mainimport ( "context" "fmt" "sync" "time")func main() { aChan := make(chan int) bChan := make(chan int) cChan := mak
2021-08-19 19:20:14
364
原创 linux安装及启动nsq流程
-- 获取资源包wget https://s3.amazonaws.com/bitly-downloads/nsq/nsq-0.3.6.linux-amd64.go1.5.1.tar.gz-- 移动文件到合适的目录mv nsq-0.3.6.linux-amd64.go1.5.1.tar.gz ~--解压到合适的目录tar -zxvf nsq-0.3.6.linux-amd64.go1.5.1.tar.gz-- 添加到PATHsudo vim ~/.profile添加一
2021-08-05 17:35:51
416
原创 golang反射之遍历struct字段及内容
package mainimport ( "fmt" "reflect")type BaseData struct { // mysql DbUrl string `yaml:"db_url" name:"数据库地址"` DbUser string `yaml:"db_user" name:"数据库用户名"` DbPassWord string `yaml:"db_pass_word" name:"数据库密码"` DbName .
2020-06-05 10:09:45
7772
原创 golang语言之互斥锁详解
互斥锁是传统的并发程序对共享资源进行访问控制的主要手段,在Go中,似乎更推崇由channel来实现资源共享和通信。它由标准库代码包sync中的Mutex结构体类型代表。只有两个公开方法:调用Lock()获得锁,调用unlock()释放锁。 使用Lock()加锁后,不能再继续对其加锁(同一个goroutine中,即:同步调用),否则会panic。只有在unlock()之后才能再次Lock()。...
2020-03-27 00:18:32
564
原创 golang面试经之笔试3
// 以下代码输出什么type student struct { Name string Age int}func pase_student() { m := make(map[string]*student) stus := []student{ {Name: "huang", Age: 24}, {Name: "li", Age: 2...
2020-03-26 18:59:38
441
原创 golang面试经之笔试2
// 以下代码输出什么?func main() { runtime.GOMAXPROCS(2) wg := sync.WaitGroup{} wg.Add(10) for i := 0; i < 10; i++ { go func(i int) { fmt.Println("i: ", i) wg.Done()...
2020-03-26 18:44:43
226
原创 golang面试经之笔试1
// 以下代码输出什么内容?type People struct{}func (p *People) ShowA() { fmt.Println("showA") p.ShowB()}func (p *People) ShowB() { fmt.Println("showB")}type Teacher struct { People}func (t...
2020-03-26 18:19:09
366
原创 golang面试经之channel之one
下面一段代码 `len(m)` 不一定会打印为 10,为什么?。如果想要 `len(m)` 打印为 10,应该怎么修改代码?func main() { const N = 10 m := make(map[int]int) wg := &sync.WaitGroup{} mu := &sync.Mutex{} wg.Add(N)...
2020-03-08 22:17:55
539
原创 redis的安装和启动详解 redis install
mac:$: brew update$: brew install redis$: brew services start redis$: redis-server /usr/local/etc/redis.conf$: redis-cli pinglinux:$: wget http://download.redis.io/releases/redis-2.8.17.tar.g...
2020-01-13 17:27:56
324
原创 kubernetes常见问题及解决方法
问题1:kubernetes执行kubectl get nodes发生问题:Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify cand...
2019-05-20 11:54:20
1628
2
转载 kubernetes常用命令
Kubernetes 主控组件(Master)包含三个进程,都运行在集群中的某个节上,通常这个节点被称为 master 节点。这些进程包括:kube-apiserver、kube-controller-manager和kube-scheduler。 集群中的每个非 master 节点都运行两个进程: kubelet,和 master 节点进行通信。 kube-proxy,一种网络代理,将...
2019-05-14 16:42:24
709
原创 kubernetes详解之使用 kubeadm 创建一个单主集群
使用 kubeadm 创建一个单主集群kubeadm能帮助您建立一个小型的符合最佳实践的 Kubernetes 集群。通过使用 kubeadm, 您的集群会符合Kubernetes 合规性测试的要求. Kubeadm 也支持其他的集群生命周期操作,比如升级、降级和管理启动引导令牌。因为您可以在不同类型的机器(比如笔记本、服务器和树莓派等)上安装 kubeadm,因此它...
2019-05-14 16:21:25
465
原创 使用golang语言判断字符串是否回文,如果不是找出最大回文
长话短说,上代码:import "fmt"func HuiWen () { str := "1234566" //判断是否回文 for i := 0; i < len(str)/2 - 1; i ++ { if str[i] != str[len(str)-i -1] { fmt.Println("不是回文字符串") ...
2019-05-04 23:37:17
1200
原创 docker使用详解-NiQinGe
查询镜像: docker search 搜索关键字例如:docker search nginx拉取镜像: docker pull 镜像名例如:docker pull nginx基于某个镜像创建实例:docker run --name 实例名-d 镜像名docker run --name test-docker -d nginx查到当前运行和未运行...
2019-04-29 15:29:54
584
原创 redis的使用详解
启动redis:安装目录/src/redis-server登录redis:安装目录/redis-cli添加缓存:set key名称 内容例:set testname "123"获取某个缓存内容:get keyname例:get testname输出:123清空redis所有缓存:flushall关闭redis:shutd...
2019-04-28 18:19:22
232
原创 nsq的搭建超详细
对于什么是nsq,请参考https://blog.csdn.net/chinawangfei/article/details/80341688。在本地搭建时,请先到nsq官网熟悉搭建流程,具体网址为:https://nsq.io/overview/quick_start.html。搭建NSQ实时分布式消息平台,主要启动三个模块nsqlookupd 、nsqd、nsqadmin。1.在第...
2019-04-10 16:33:01
1633
原创 git命令
# 查看分支git branch# 新建分支,并切换到新建分支git checkout -b 分支名# 查看修改的文件git status# 获取已经关联的远端代码git pull# 提交到gitgit commit -am '说明'# 提交到远端git push# 查看远端分支git branch -r...
2018-09-11 20:06:56
297
原创 go语言switch的用法
switch会根据传入条件的不同,选择语句会执行不同的语句。下面的例子根据传入的整型变量i的不同而打印不同的内容:switch i { case 0:fmt.Printf("0") case 1:fmt.Printf("1") case 2:fallthrough case 3:fmt.Printf("3") case 4, 5, 6:fmt.Printf("4, 5,...
2018-08-14 09:58:44
706
原创 go语言中map类型的用法
map是一堆键值对的未排序集合。比如以身份证号作为唯一键来标识一个人的信息,则这个 map可以定义为代码清单 2-3所示的方式。代码清单2-3 map1.go package mainimport "fmt"// PersonInfo是一个包含个人详细信息的类型 type PersonInfo struct {ID stringName string Address string...
2018-08-13 19:20:31
2709
原创 go语言基础篇2
1、类型:布尔类型:bool。 整型:int8、byte、int16、int、uint、uintptr等。 浮点类型:float32、float64。 复数类型:complex64、complex128。 字符串:string。 字符类型:rune。 错误类型:error。此外,Go语言也支持以下这些复合类型: 指针(pointer) 数组(array)...
2018-08-13 17:23:49
267
原创 go语言基础篇1
package mainimport ( "fmt")func main() { fmt.Println("Hello World") fmt.Println(getStr()) getLength() fmt.Println() values := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} resultChan := make(ch...
2018-08-09 17:57:51
310
原创 递归算法
其实简单的说递归算法只要遵循两个元作为就可以了。(1)必须要有出口。(2)执行时要往出口方向。例1:求N!。使用递归算法可以很简洁,如下:long fact(int i){ if(i == 1){ return 1;} else{ return i*fact(i-1); }}例2:设一维数组A的元素A[k1]~A[k2]中存放着整数,用递归方法求出他们中的最大值。分析...
2018-04-12 18:06:26
344
原创 图及图的存储方式
图分为有向图和无向图两种。有向图:若图中每条边都是有向的,则称为有向图。从顶点i到顶点j的有向边<i,j>称为弧,起点i称为弧尾,终点j称为弧头。无向图:若图中的每条边都是无方向的,称为无向图;其中若一个无向图具有n个顶点,而每个顶点与其他n-1个顶点之间都有边,则称为无向完全图(完全图)。图的存储结构。邻接矩阵表示法:指利用一个矩阵来表示图中顶点之间的关系;例如有向图和无向图可以这样...
2018-04-12 17:44:25
571
原创 二叉树的遍历之中序遍历
中序遍历二叉树的操作定义如下,如二叉树为空,则返回空操作。否则:(1)中序遍历跟的左子树。(2)访问根节点。(3)中序遍历跟的右子树。
2018-04-12 17:14:50
321
原创 离散数学中稀疏矩阵详解
稀疏矩阵定义:在一个矩阵中,若非零元素的个数远大于零元素的个数,且非零元素的分布没有规律,则称为稀疏矩阵。对于稀疏矩阵,存储非零元素时必须同时存储其位置(即行号和列号),称为三元组,形式为(i,j,value),表示第i行第j列放置的值为value。譬如一个6行7列的稀疏矩阵,其三元组为((1,2,12),(1,3,9),(3,1,-3), (3,6,14),(4,3,24),(5,2,18),(...
2018-04-12 17:04:51
1295
原创 取每个员工最后一个月的的工资详情
有两张表,一张是员工信息表T_EMP_INFO,字段有USER_ID,USER_NANE;一张是工资表T_WAGE_INFO,字段有ID,USER_ID(关联员工表字段),SALERY(工资),MONTH(月份);1、查询每位员工最近一个月发工资的情况:SELECT e.NAME,MAX(d.MONTH),d.* from T_EMP_INFO e LEFT JOIN T_WAGE_INFO d ...
2018-04-08 10:29:44
748
原创 mysql、oracle数据库sql详解大全
1、去重,使用字段:DISTINCT例如:SELECT DISTINCT user_name FROM tableName;表示查询无重复的表名为tableName中的user_name字段。2、分页,使用字段:limit;使用limit时后面可跟一个参数或者两个参数,如果是跟两个参数时使用逗号隔开。例1:select user_name FROM tableName limit 10;会返回ta...
2018-04-03 17:57:12
359
原创 tcp协议和udp协议
tcp/ip分层模型由4个层次构成,即应用层、传输层、网际层和网络接口层。传输层协议有tcp和udp。tcp协议也就是传输控制协议,是整个tcp/ip协议簇中最重要的协议之一,它在IP提供的不可靠数据服务的基础上,为应用程序提供了一个可靠的、面向连接的、全双工的数据传输服务。其最主要和最重要的是tcp采用了一种叫重发的技术,具体的说,在tcp传输过程中,发送方启动一个定时器,然后将数据包发出,当接...
2018-03-30 16:23:29
464
原创 spring+springMvc+Mybatis简单案例超详细
上一篇文章介绍了spring+springMvc+Mybatis的搭建,地址https://blog.csdn.net/niqinge/article/details/79280204现在来仔细介绍一个简单的案例。在搭建完ssm框架之后,不懂搭建的朋友可以先看看我的上一篇文章地址https://blog.csdn.net/niqinge/article/details/792802041、先建立一...
2018-03-29 18:15:46
11625
4
原创 try、catch、finally详解
第一种情况:try、catch、finally三段代码中都含有return时,则以finally中的retrun为准,其它return均无效;但是其它return之前的代码有效。第二种情况:try和catch中年含有return,但是finally中不含return;则代码会在执行try/catch中return之前去执行finally中的代码块,然后再执行try中的return操作。结论:1、不...
2018-03-26 17:39:27
1799
原创 java常用排序算法
1、冒泡排序冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。算法描述比较相邻的元素。如果第一个比第二个大,就交换它们两个;对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的...
2018-03-21 14:46:56
281
原创 linux下常用vi操作命令
上一篇文章我们阐述了linux常用的命令,这篇文章主要阐述linux系统的vi操作指令。编辑器: vivi 的工作模式 编辑模式 插入模式 命令模式 shell 切换 选项设置 vim 和 gvim 的高级特色 1.6.1 vi 的工作模式Vi 在初始启动后首先进入编辑模式,这时用户可以利用一些预先定义的按键来移动光标、删除文字、复制或粘贴文字等。这些按键均是普通的字符,例如 l 是向右移...
2018-03-21 10:15:34
2610
原创 linux常用命令大全
-- unix系统操作命令大全用户在登录前,首先要向系统管理员申请一个用户注册名,不论用户从哪台计算机登录到ITPNET上都将访问相同的文件系统。1.1 登录 当屏幕上出现Login提示符时,用户可以输入自己的用户注册名,并按回车键。若有口令,系统将提示用户输入密码,并按回车键,口令输入正确后,用户登录成功。这时,屏幕上会显示出一些信息和命令提示符。如: Login: guest [Ente...
2018-03-21 10:12:45
405
原创 Java web项目目录介绍
web 程序一般都会部署在Tomcat的目录webapps下,而在web项目中,也有自己特有的目录结构,具体如下:/web:应用根目录。/WEB-INF/:Tomcat会隐藏该文件夹下所有的文件及文件夹。保护它们无法通过浏览器直接访问。/WEB-INF/web.xml:Web程序最主要的配置文件。/WEB-INF/classes/:主要用来存放编译后的文件,类文件都会放置在此目录中,包括Servl...
2018-03-20 15:29:27
3475
基于Android Studio开发手机本地文件浏览器
2016-06-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人