- 博客(64)
- 资源 (11)
- 收藏
- 关注
转载 beego 安装并创建项目
bee安装并创建项目1.下载bee源码下载地址为:https://github.com/beego/bee2.解压将下载的文件解压到最后的目录如下(相应目录的需要事先创建好,解压生产的目录名为bee-develop,重命名为bee):../src/github.com/beego/bee3.编译安装cd C:\Go\src\github.com\beego\beego b...
2019-09-23 11:30:49 2482
原创 golang panic
/* go panic panic 表示的意思就是有些意向不到的错误发生了 通常我们常用来表示程序正常运行的过程中 不应该出现的或者我们没有处理好的错误*/package mainimport ( "os")func main() { //我们使用panic来检查预期不到的错误 panic("a problem") /* ...
2019-09-20 09:42:03 157
原创 golang range函数
/*go range 函数range 函数是个神奇而有趣的内置函数你可以使用它来遍历数组切片字典当用于遍历数组和切片的时候 range函数返回索引和元素当用于遍历字典的时候 range函数返回字典的建和值*/package mainimport ( "fmt")func main() { /* 这里我们使用range来计算一...
2019-09-20 09:41:31 1130
原创 golang sha1散列
/* go sha1 散列 sha1散列经常用来计算二进制或者大文本数据的短标识值*/package mainimport ( "crypto/sha1" "fmt")func main() { s := "sha2 this string" /* 生成一个hash的模式是sha1.New() ...
2019-09-20 09:40:57 211
原创 golang 字符串与byte切片
/* go string与byte切片之间的切换 string转换到byte数组时 每个byte保存字符串对应的字节的数值 go的字符串时utf-8编码的 每个字符长度是不确定的*/package mainimport ( "fmt")func main() { s1 := "abcd" //类型转换 b1 := []byte(s1)...
2019-09-20 09:40:09 1899
原创 golang switch
/* go switch语句 当条件判断分支太多的时候 我们会使用switch语句来优化*/package mainimport ( "fmt" "time")func main() { i := 2 switch i { case 1: fmt.Println("one") case 2: ...
2019-09-20 09:39:19 176
原创 golang url解析
/* go url解析 url提供了一种统一访问资源的方式 go里如何解析url*/package mainimport ( "fmt" "net/url" "strings")func main() { /* 我们将解析这个url 他包含了模式 验证信息 主机 端口 路径 查询参数 查询片段 ...
2019-09-20 09:38:46 1871
原创 golang 互斥
/* go互斥 上面的例子汇总 我们看过了如何在多个协程之间 原子地访问计数器 对于更复杂的例子 我们可以使用Mutex来在多个协程之间安全地访问数据*/package mainimport ( "fmt" "math/rand" "runtime" "sync" "sync/atomic" "time")func m...
2019-09-20 09:38:14 224
原创 golang 信号处理
/* go信号处理 有的时候我们希望go能够智能地处理unix信号 例如我们希望一个server接收到一个SIGTERM信号后 能够自动地停止 使用channel来处理信号*/package mainimport ( "fmt" "os" "os/signal" "syscall")func main() { //go信号...
2019-09-20 09:37:43 859
原创 golang 关闭通道
/* go 关闭通道 关闭通道的意思是该通道将不再允许写入数据 这个方法可以让管道数据的接收端知道数据已经全部发送完成了*/package mainimport ( "fmt")func main() { //当我们数据发送完成后 我们关闭jobs通道 jobs := make(chan int, 5) done := make(cha...
2019-09-20 09:37:12 769
原创 golang 写文件
/*go写入文件go将数据写入文件的方法和上面介绍过的读取文件的方法类似*/package mainimport ("bufio""fmt""io/ioutil""os")func check(e error) {if e != nil {panic(e)}}func main() {...
2019-09-20 09:36:38 194
原创 golang命名返回值
/* go函数命名返回值 函数接收参数 在go中函数可以返回多个结果参数 而不仅仅是一个值 他们可以像变量那样命名和使用 如果命名了返回值参数 一个没有参数的return语句 会将当前的值作为返回值返回 注意 如果遇到if等代码块和返回值同名 还需要显示写出返回值*/package mainimport ( "fmt")func split(...
2019-09-19 10:21:25 717
原创 golang 函数回调
/* go函数回调 go支持函数回调 你可以把函数名称作为参数传递给另外一个函数 然后在别的地方实现这个函数*/package mainimport ( "fmt")/* 知识点: type xxx 基础类型 给基础类型起别名*/type Callback func(x, y int) intfunc main() { x, ...
2019-09-19 10:13:52 1548
原创 golang命令行参数标记
/*go命令行参数标记命令行参数标记是为命令行程序指定选项参数的常用方法wc -l -l就是一个命令行参数标记go提供了flag包来支持基本的命令行标记解析*/package mainimport ("flag""fmt")func main() {/*基础的标记声明适用于 string integer bool选项...
2019-09-19 10:04:51 266
原创 golang命令行参数
/* go命令行参数 命令行参数是一种指定程序运行初始参数的常用方式*/package mainimport ( "fmt" "os")func main() { /* os.Args 提供了对命令行参数的访问 注意改切片的第一个元素是改程序的运行路径 os.Args[1:] 改程序的所有参数 */...
2019-09-19 10:04:16 234
原创 golang 可变参数列表
/* go可变长参数列表 支持可变长参数列表的函数可以支持任意个传入参数*/package mainimport ( "fmt")func sum(nums ...int) { fmt.Print(nums, " ") total := 0 for _, num := range nums { total += num...
2019-09-19 10:03:44 1092
原创 golang 变量
/*go变量go是静态类型语言 变量是有明确类型的编译器会检查函数调用中 变量类型的正确性使用var关键字来定义变量boolstringint*/package mainimport ("fmt")func main() {/*var 关键字用来定义一个或者多个变量*/var a s...
2019-09-19 10:03:05 143
原创 golang 原子计数器
/* go原子计数器 go里面的管理协程状态的主要机制就是通道 多协程原子访问计数器的例子 sync/atomic*/package mainimport ( "fmt" "runtime" "sync/atomic" "time")func main() { var ops uint64 = 0 for i :...
2019-09-19 10:02:33 2486
原创 golang切片
/* go切片 切片是go语言的关键类型之一*/package mainimport ( "fmt")func main() { /* 和数组不同的是 切片的长度是可变得 我们可以使用内置的make来创建一个长度补位o的切片 */ s := make([]string, 3) s[0] = "a"...
2019-09-19 10:02:01 109
原创 golang 函数定义
/* go函数定义 函数是go语言的重要内容*/package mainimport ( "fmt")func plus(a int, b int) int { return a + b}func main() { res := plus(1, 2) fmt.Println(res)}//go的函数还有很多其他的特性 其中一个就是...
2019-09-19 10:01:28 343
原创 golang函数多返回值
/* go 函数多返回值 go语言内置支持多返回值 这个在go语言中用的很多 函数同时返回结果和错误信息*/package mainimport ( "fmt")func vals() (int, int) { return 3, 9}func main() { a, b := vals() // _ 下划线来忽略其他返回值...
2019-09-19 10:00:55 2124
原创 golang Map
/* go字典 字典是go语言内置的关联数据类型 因为数组是索引对应数组元素 而字典是建对应值*/package mainimport ( "fmt")func main() { //创建一个字典可以使用内置函数make //make(map[建类型][值类型]) m:=make(map[string]int) //设置 ...
2019-09-18 15:30:47 85
原创 golang strings包提供的操作函数
/* go 字符串操作函数 strings 标准库提供了很多字符串操作相关的函数*/package mainimport ( "fmt" s "strings")var p = fmt.Printlnfunc main() { /* Contains Count HasPrefix H...
2019-09-18 15:21:27 113
原创 golang 格式化
/* go字符串格式化 go对字符串格式化提供了良好支持*/package mainimport ( "fmt" "os")type point struct { x, y int}func main() { /* go提供了几种打印格式用来格式化一般的go 下面的%v打印了一个point结构体的对象的值 ...
2019-09-18 15:15:25 699
原创 golang 使用协程和channel来实现工作池
/* go 工作池 使用goroutine 和channeL来实现工作池*/package mainimport ( "fmt" "time")func worker(id int, jobs <-chan int, result chan<- int) { for j := range jobs { time.Sleep...
2019-09-18 11:45:26 541
原创 golang 常量
/* go 常量 go支持定义字符常量 字符串常量 布尔常量 数值常量 const 关键字来定义常量*/package mainimport ( "fmt" "math")const s string = "constant"func main() { //常量必须有初始值 const n = 5000 const d = 2...
2019-09-18 11:25:39 137
原创 golang协程
/*go 并行功能goroutine是一个轻量级的线程*/package mainimport ( "fmt")func f(from string) { for i := 0; i < 3; i++ { fmt.Println(i) }}/* 知识点: go 函数 go func(){}() f...
2019-09-18 11:17:43 104
原创 golang并行通道
/* go并行通道channel Channel 是连接并行协程的通道 你可以向一个通道写入数据然后从另外一个通道读取出具*/package mainimport ( "fmt")func main() { /* 使用make(chan 数据类型)来创建一个Channel channel的类型就是他们所传递的数据类型 */...
2019-09-18 11:10:10 126
原创 golang打点器
/* go打点器 Timer是让你等待一段时间然后去做一件事情 这件事情只会做一次 而Ticker是让你按照一定的时间间隔循环地做一件事情 除非你手动挺住他*/package mainimport ( "fmt" "time")func main() { /* Ticker使用和Timer相似的机制 同样使用一个通道来发送数据...
2019-09-18 10:43:59 308
原创 golang 指针
/* go指针 go支持指针 可以用来给函数传递变量的引用 go没有像c/c++那样的引用 但是有指针*/package mainimport ( "fmt")//zeroval函数有一个int类型参数 这个时候传递给函数的变量的值func zeroval(ival int) { ival = 0}//zeriptr参数是int类型指针 这...
2019-09-18 10:34:52 143
原创 golang sort包内置类型排序
/*go 排序go的sort包实现了内置数据类型和用户自定义数据类型的排序功能内置数据类型的排序*/package mainimport ("fmt""sort")func main() {/*这些排序方法都是针对内置类型的这里的排序方法都是就地排序 也就是说排序改变了切片内容而不是返回一个新的切片*/...
2019-09-18 09:40:06 899
原创 golang 接口
/*go接口接口是一个方法签名的集合所谓方法签名 就是指方法的声明而不包括实现*/package mainimport ( "fmt" "math")type geometry interface { area() float64 perim() float64}type square struct { width, hei...
2019-09-17 16:05:42 73
原创 golang 数值
/* go数值 go有很多种数据类型 字符串类型 整形 浮点型 布尔型*/package mainimport ( "fmt")func main() { fmt.Println("go" + "lang") 1 + 1 7.0 / 3.0 true && false true || fal...
2019-09-17 15:55:08 169
原创 golang strconv 字符串解析为数字
/*go数字解析从字符串解析出数字是一个基本的 而且常见任务go内置的strconv 提供了数字解析功能*/package mainimport ( "fmt" "strconv")func main() { /* 使用ParseFloat 解析浮点数 64是说明使用多少位 精度来解析 */ f, _ :...
2019-09-17 15:50:49 1860
原创 golang 数组
/* go数组 数组是一个具有相同数据类型的元素组成的固定长达的有序集合 数组是值类型 [10]int [20]int 是两种完全不同的两种数组类型 同类型的两个数组支持 == != 比较 数组作为参数时函数内部不改变数组内部的值 除非是传入数组的指针 *[2]int*/package mainimport ( "fmt")func main(...
2019-09-17 15:41:36 312
原创 golang 方法及struct的匿名字段方法继承
/* go方法 一般的函数定义叫做函数 定义在结构提上面的函数叫做该结构体的方法*/package mainimport ( "fmt")type rect struct { width int height int}/* 这个area方法有一个限定类型*rect 表示这个函数是定义在rect结构体上的方法*/func ...
2019-09-17 15:23:39 1365
原创 golang 时间
/* go 时间 go提供了对时间和一段时间的支持*/package mainimport ( "fmt" "time")func main() { p := fmt.Println //获取当前时间 now := time.Now() p(now) /* 你可以提供年 月 日 等来创建一个时间 ...
2019-09-17 11:49:10 86
原创 批量修改文件编码为utf-8
import osfrom chardet import detectfileSuffix = input("请输入文件后缀")fns = []filedir = os.path.join(os.path.abspath('.'), "")file_name = os.listdir(os.path.join(os.path.abspath('.'), ""))for fn in f...
2019-09-17 11:25:14 10310 3
原创 golang时间戳
/* go时间戳 程序的一个通常需求是 计算从unix起始时间开始 到某个时刻的秒数 毫秒数 微妙数*/package mainimport ( "fmt" "time")func main() { /* 使用unix UnixNano 来分别获取从Unix起始时间到现在所经过的秒数和微妙数...
2019-09-17 09:29:21 189
原创 golang 时间格式化与解析
/* go时间格式化和解析 go使用模式匹配的方式来支持日期格式化和解析 知识点: 按照模式来 格式化或解析时间*/package mainimport ( "fmt" "time")func main() { p := fmt.Println t := time.Now() p(t.Format("2006-01-0...
2019-09-17 09:28:49 1029
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人