Mysql学习(一)添加一个新的用户并用golang操作Mysql
Mysql添加一个新的用户并赋予权限
添加一个自己的用户到mysql
首先我们需要先用root用户登录mysql,但是刚安装完没有密码,我们先跳过密码
ailumiyana@ailumiyana:~/Git_Project/Go_Test$ sudo mysqld_safe --skip-gr...[2019/1/8]
PHP和Go中的闭包变量作用域
关于闭包函数,之前在聊过。这里忽略了一点,不管是Go/Php/Python,闭包都存在局部变量的引用。 我们还是先看个例子:
PHP示例:
$list = [];
for ($i = 0; $i < 3; $i++) {
$list[] = function(){
...[2019/1/7]
golang实现简单的栈
栈的ADT
数据
栈的数据对象集合为{a1,a2,a3...an},具有相同数据类型,有唯一前驱后续
操作
InitStack() *Stack 初始化操作,创建一个空栈
Clear() 清空栈
IsEmpty() bool 栈是否为空,若栈为空,返回 true,否则 返回 fal...[2019/1/7]
浅谈GoLang几种读文件方式的比较浅谈GoLang几种读文件方式的比较
GoLang提供了很多读文件的方式,一般来说常用的有三种。使用Read加上buffer,使用bufio库和ioutil 库。
那他们的效率如何呢?用一个简单的程序来评测一下:
package main
import(
"fmt"
"os"
"f...[2019/1/7]
Go使用protobuf
本文更新于2019-01-03。
从https: github.com/protocolbuffer protobuf/releases下载protoc(如:Windows则下载protoc-3.6.1-win32.zip)。protoc命令位于bin目录下。
go get github.com...[2019/1/4]
golang判断文件是否存在golang判断文件是否存在
判断一个文件是否存在是一个相当常见的需求,在golang中也有多种方案实现这一功能。
现在我们介绍其中两种最常用也是最简单的实现,第一种将是跨平台通用的,而第二种则在POSIX平台上通用。
跨平台实现
跨平台实现的思路很简单,如果某个文件不存在,那么使用os.Lstat就一定会返回error,...[2019/1/2]
[Go语言学习笔记] 02 命令源码文件
源码文件的三种类型:
命令源文件:可以直接运行的程序,可以不编译而使用命令“go run”启动、执行。
库源码文件
测试源码文件
面试题:命令源码文件的用途是什么,怎样编写它?
典型回答:
命令源码文件是程序的运行入口,是每个可独立运行的程序必须拥有的。
我们可以通过构建或安装生成与...[2018/12/28]
Go Data Structures: Interfaces
Go''s interfaces—static, checked at compile time, dynamic when asked for—are, for me, the most exciting part of Go from a language design point of vi...[2018/12/26]
Go语言下载网络图片或文件的方法示例
最近闲来无事, 于是就简单学习了下Go语言的基本的用法。由于实践才是最快的学习方法,所以这里就以下载网络图片或文件入手来学习Go语言
文件下载到本地,通常的思路就是先获得网络文件的 输入流 以及本地文件的 输出流 ,再读取输入流到输出流中,因此自然也要获取相应的 Reader 和 Writ...[2018/12/24]
GoLand(三)数据类型、变量和常量
Infi-chu:
http: www.cnblogs.com/Infi-chu/
一、数据类型 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。Go语言按类别有以下几种数据类型: 1.布尔型 两个常量,true和fal...[2018/12/21]
GoLand(二)语言结构和基础语法
Infi-chu:
http: www.cnblogs.com/Infi-chu/
一、Go语言结构 1.Go语言有6大部分组成,分别是:包声明、引入包、函数、变量、语句或表达式、注释 2.输出一个Hello GoLand!
package main 包声明
import "fmt" ...[2018/12/19]
Go语言连接Oracle(就我这个最全)Go语言连接Oracle(就我这个最全)
综合参考了网上挺多的方案
倒腾了半天终于连接好了
Go都出来这么多年了
还没有个Oracle的官方驱动。。。
过程真的很蛋疼。。一度想放弃直接连ODBC
首先交代一下运行环境和工具版本:
WIN10
MINGW64
ORACLE INSTANCCLIENT_18_3&nb...[2018/12/19]
Go语言复制文件
需要使用io包的Copy方法
package main
import (
"fmt"
"io"
"os"
)
自己编写一个函数,接收两个文件路径 srcFileName dstFileName
func CopyFile(dstFileName string, sr...[2018/12/19]
合并两个有序链表的golang实现
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
注意:
两个链表都是有序的
如果某个链表为空,那就直接返回另...[2018/12/19]
GoLand(一)安装
Infi-chu:
http: www.cnblogs.com/Infi-chu/
一、安装包下载地址 https: golang.org/ 二、Windows下安装: 1.下载好.msi的安装包文件。 2.双击进行安装,将所有的选项都勾选上。 3.安装完毕之后重启即可。 三、Linux下安装...[2018/12/18]
Golang: 数组和切片
数组
同其他语言一样,数组是一些相同类型的元素的集合。数组声明
数组的类型为 n[T],其中 n 表示数组中元素的个数,T 表示数组中元素的类型。数组元素的个数 n 也是数组类型的一部分
1 package main
2
3 im...[2018/12/17]
Golang:sync.Map
由于map在gorountine 上不是安全的,所以在大量并发读写的时候,会出现错误。
在1.9版的时候golang推出了sync.Map.
sync.Map
通过阅读源码我们发现sync.Map是通过冗余的两个数据结构(read、dirty),实现性能的提升。
为了提升性能,load、de...[2018/12/17]
Golang:List
List的接口
1 func New() *List 创建List
2 func (l *List) Back() *Element ...[2018/12/17]
Qt显示Linux desktop natification气泡提示框
在现代Linux桌面环境上我们时常可以看到类似的消息框:
这些消息框常用在如下场景:
即时聊天软件的新消息
闹钟定时提示
电池电量提示
邮件消息
长耗时操作的完成提示
在freedesktop.org的规范中这种消息框被称为Desktop Notification,中文名我们形象得称其...[2018/12/17]
三数之和的golang实现
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。
注意:答案中不可以包含重复的三元组。
例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],
满足要求的...[2018/12/17]
验证二叉搜索树的golang实现
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
一个二叉搜索树具有如下特征:
节点的左子树只包含小于当前节点的数。
节点的右子树只包含大于当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。
输入:
2
/ 1 3
输出: true
输入:
5
...[2018/12/17]
有效的字母异位词的golang实现
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。
输入: s = "anagram", t = "nagaram"
输出: true
输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母
首先看...[2018/12/17]
GoLand Dep Integration Project
Dep integration
标签(空格分隔): Go
1. 通过 GoLand 使用 dep integration 创建项目
参见 Dep integration
使用 dep integration, 你可以在你的项目中管理依赖.
首先下载 dep distribution.
...[2018/12/14]
滑动窗口最大值的golang实现
给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口 k 内的数字。滑动窗口每次只向右移动一位。
返回滑动窗口最大值
输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3
输出: [3,3,5,5,6,7]
...[2018/12/14]
数据流中的第k大元素的golang实现
设计一个找到数据流中第K大元素的类(cla )。注意是排序后的第K大元素,不是第K个不同的元素。
你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。
int k...[2018/12/13]
浏览器与go语言的websocket通信
简介 WebSocket是HTML5一种新的协议。顾名思义,它在服务器和浏览器之间建立了全双工通信。 需求背景 区块链测试系统web前端平台需要动态接收后端发送的状态信息改变一次测试se ion过程的状态显示,测试用例在运行后会返回一次运行的se ion,后端根据该se ion实时返回测试状态。 ...[2018/12/13]
Golang-map
map和其他语言的hashmap是一样的,是一个kv的数据集合,是按照哈希算法得到k的一个整数,将v存到一个数组的k位。
1 package main
2
3 import (
4 "fmt"
5 )
6
7 func main() {
8
9 map1...[2018/12/13]
环形链表得golang实现
给定一个链表,判断链表中是否有环。
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。
输入:head = [3,2,0,-4], pos = 1
输出:true
解释:链表中有一个环,其尾部连接到...[2018/12/12]
Golang中的三个点
之前提到了把一个切片追加到另外一个切片时使用到了...
今天我们好好研究一下这三个点,博客写着写着又成了,回字有四种写法
...第一种用法,可变长的参数
1 package main
2
3 import "fmt"
4
5 func main() {
6 fmt.P...[2018/12/12]
LeetCode 队列与BFS--岛屿的数量LeetCode 队列与BFS--岛屿的数量
tags = ["leetcode","队列","BFS","C++","Go"]
岛屿的个数
给定一个由 ''1''(陆地)和 ''0''(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,...[2018/12/12]
Go Web:RESTful web service示例Go Web:RESTful web service示例
RESTful架构的简介
web服务的架构模式主要有2种:SOAP和REST。SOAP和REST都回答了同一个问题:如何访问web服务。
SOAP风格的程序是功能驱动的,要借助xml来传递数据,明确表示要做什么动作,访问什么资源,但使用xml是非常繁琐复杂的事情。
RESTful风格的Web服...[2018/12/10]
2018/12/05学习笔记
1.Windows在cmd下使用tab自动补全设置:
cmd+r -> regedit -> HKEY_LOCAL_MACHINE\Software\Microsoft\Command Proce or -> CompletionChar -> 键值改为9 , ...[2018/12/7]
Go处理json数据
json数据格式
参见json数据格式说明。
如果没操作过json数据,建议先看下上面的文章,有助于理解本文后面的内容。
Go json包
Marshal():Go数据对象 -> json数据
UnMarshal():Json数据 -> Go数据对象
func Marshal(v...[2018/12/7]
104 - kube-scheduler源码分析 - predicate整体流程
(注:从微信公众:CloudGeek复制过来,格式略微错乱,更好阅读体验请移步公众号,二维码在文末)
今天我们来跟一下predicates的整个过程;predicate这个词应该是“断言、断定”的意思,在这里我们姑且翻译为“预选&rd...[2018/12/3]
Go Web:数据存储(2)——CSV文件Go Web:数据存储(2)——CSV文件
存储到CSV文件中
1.内存存储
2.CSV文件存储
3.gob序列化存储
本文接上一篇:内存存储。
关于CSV文件的说明,见csv文件格式
当数据存储到了内存中,可以在需要的时候持久化保存到磁盘文件中。比如保存为csv格式的文件,下一篇再介绍序列化持久到文件中。
下面是持久化到...[2018/12/3]
Go语言map
map 是一种特殊的数据结构:一种元素对(pair)的无序集合,pair 的一个元素是 key,对应的另一个元素是 value,所以这个结构也称为关联数组或字典。这是一种快速寻找值的理想结构:给定 key,对应的value 可以迅速定位。
内部实现
Map是给予散列表来实现,就是我们常说的Has...[2018/12/3]
Kali Linux搭建Go语言环境
准备:
(1)Kali Linux系统(此实验为VMware环境)
(2)Go语言安装包
具体过程:
(1)到官网下载Go语言安装包,如图示操作(官网可能需要梯子,没有的可以从国内相关网站下载)
(2)下载好安装包后,进行解压操作,如图所示
命令:tar zxv...[2018/12/3]
QSS的使用(二)——实现ColorLabel
在上一篇文章中,我们已经了解了QSS的基础使用,现在我们将会看到一个简单的例子来加深对QSS的理解。
需求分析
我们想要在界面中让文本显示出指定的颜色,现在有几种方案:
使用paintEvent手动计算文字大小和位置,然后绘制
利用QLabel可以识别HTML标签的特性实现彩色文字
利用QSS...[2018/12/3]
Go标准库:Go template用法详解Go标准库:Go template用法详解
本文只介绍template的语法和用法,关于template包的函数、方法、template的结构和原理,见:深入剖析Go template。
入门示例
以下为test.html文件的内容,里面使用了一个template语法{{.}}。
<!DOCTYPE html>
<ht...[2018/12/3]
Go Web:数据存储(1)——内存存储
数据可以存储在内存中、文件中、按二进制序列化存储的文件中、数据库中等。
内存存储
将数据存储到内存中。此处所指的内存是指应用程序自身的内存空间(如slice、array、map、struct、队列、树等等容器),而不是外部的内存数据库(如redis)。
例如,要存储博客文章。
每篇博客文章都...[2018/12/3]
GitHub上不容错过的6个Go开源项目,真香!
Go作为近两年迅速流行起来的编程语言始终致力于使事情简单化。它并未引入很多新概念,而是聚焦于打造一门简单的语言,让开发者使用起来感觉异常快速且简单。相信有意向深入学习Go语言的小伙伴都在研究Go的开源项目,今天我就把自己觉得不错的6个Go开源项目推荐给大家,希望大家能获得收获和成长。 推荐一:...[2018/11/30]
细说Go语言切片
目录 内部实现 声明切片 初始化数组 切片内存结构 使用切片 迭代切片 切片重组 在函数间传递切片 new()和make()的区别 字符串、数组和切片的应用 从字符串生成字节切片 字符串和切片的内存结构 修改字符串中的某个字符 在上一篇文章中已经了解了数组,数组有特定的用处,但是却有一些呆板(数组...[2018/11/30]
Go 语言实践(一)
本文由Austin发表
指导原则
我们要谈论在一个编程语言中的最佳实践,那么我们首先应该明确什么是“最佳”。如果您们听了我昨天那场讲演的话,您一定看到了来自 Go 团队的 Ru Cox 讲的一句话:
软件工程,是您在编程过程中增加了工期或者开发人员之后发生的那些事。 — Ru Cox...[2018/11/30]
Golang 学习权威网站
Golang 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Golang 是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Ru Cox等人,...[2018/11/30]
计算函数执行时间
在开发的过程中,我们常常需要知道执行某一块代码需要消耗的时间,这有利于我们知道代码的执行效率一遍对其进行优化,我们一般就是在计算开始前设置一个起始时间,再在该块代码执行结束的地方设置一个结束时间,结束时间与开始时间的差值就是该快代码执行所消耗的时间。在Go语言中可以使用time包中的Now()和S...[2018/11/29]
细说Go语言数组细说Go语言数组
目录
声明数组
数组在内存的结构
初始化数组
使用数组
函数间传递数组
数组使用注意事项
数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整形、字符串或者自定义类型(结构体、接口)。数组长度必须是一个常量表达式,并且必须是一...[2018/11/29]
Go标准库:深入剖析Go template
本文只关注Go text/template的底层结构,带上了很详细的图片以及示例帮助理解,有些地方也附带上了源码进行解释。有了本文的解释,对于Go template的语法以及html/template的用法,一切都很简单。
入门示例
package main
import (
&quo...[2018/11/29]
Go语言strings和strconv包Go语言strings和strconv包
目录 前缀和后缀 字符串包含关系 判断子字符串或字符在父字符串中出现的位置(索引) 字符串替换 统计字符串出现次数 重复字符串 修改字符串大小写 修剪字符串 分割字符串 拼接slice到字符串 从字符串中读取内容 字符串与其它类型的转换前缀和后缀 HasPrefix判断字符串s是否以prefix开...[2018/11/28]
Go Web:HttpRouter路由Go Web:HttpRouter路由
HttpRouter是一个轻量级但却非常高效的multiplexer。手册:
https: godoc.org/github.com/julienschmidt/httprouter
https: github.com/julienschmidt/httprouter
用法示例
package ...[2018/11/28]
Go语言中strings和strconv包示例代码详解
前缀和后缀
HasPrefix判断字符串s是否以prefix开头:
strings.HaxPrefix(s string, prefix string) bool
示例:
package main
import (
"fmt"
"strin...[2018/11/28]