
GoLang
阿飞快码
技术交流:c++|架构 (大流量 高并发 一致性)
展开
-
Go/并发/goroutine
package mainimport ( "fmt" "runtime")//主协程结束,其它协程也会被终止func main(){ runtime.GOMAXPROCS(4) //设置运行程序的最大cpu核数 go func(){ for i := 0; i < 3; i++{ fmt.Println("c++") ...原创 2018-12-03 22:54:30 · 175 阅读 · 0 评论 -
golang/redis/简单操作
# go-redis 简单示例package mainimport ("fmt""github.com/gomodule/redigo/redis")//go get -v github.com/gomodule/redigo/redisfunc main() { //连接redis conn,err := redis.Dial("tcp","192.168.56.10...原创 2018-12-03 00:50:25 · 272 阅读 · 0 评论 -
Go/网络编程/Tcp-Ip-Socket
# 服务器package mainimport ( "fmt" "net" "strings")func main() { //监听 lisener,err := net.Listen("tcp","127.0.0.1:8888") defer lisener.Close() if err != nil{ fmt.Println(err) return }...原创 2018-11-21 01:53:29 · 523 阅读 · 0 评论 -
Go/文件io/文件读写
# 文件读写基本操作package mainimport ( "bufio" "fmt" "io" "os")func writeFile(path string){ //创建或截断打开文件 f,err := os.Create(path) if err != nil{ return } defer f.Close() f.WriteString("aa...原创 2018-11-17 23:35:10 · 1355 阅读 · 0 评论 -
Go/文本操作/Json
#Json编码解码package mainimport ( "encoding/json" "fmt")//通过结构体生成json串,结构体成员名首字母必须大写type Stu struct{ Name string //`json:"-"` //不会打印到屏幕 Age int `json:"age"` //二次编码,json串里,key为"age" Course...原创 2018-11-17 19:42:20 · 152 阅读 · 0 评论 -
Go/文本处理/正则表达式提取
package mainimport ( "fmt" "regexp")func test(){ s1 := `a\tb` s2 := `a\\tb` s3 := "a\tb" s4 := "a\\tb" fmt.Println(s1) //a\tb fmt.Println(s2) //a\\tb fmt.Println(s3) //a b fmt.Println(...原创 2018-11-17 17:25:54 · 8359 阅读 · 0 评论 -
Go/文本处理/字符串处理
# 字符串常用函数package mainimport ( "fmt" "strconv" "strings")func main() { //是否包含子串 fmt.Println(strings.Contains("hellogo","go")) //true //切片连成字符串 s := []string{"aa","bb",&qu原创 2018-11-17 16:23:06 · 618 阅读 · 0 评论 -
Go/异常处理
# error接口# panic()函数# recover()函数# defer 延迟调用,退出函数前调用package mainimport ( "errors" "fmt")//一般错误 error接口func testErr(a int) (c int, err error){ if(a == 0){ err = errors.New("errorer...原创 2018-11-17 15:36:07 · 188 阅读 · 0 评论 -
Go/面向对象特性/接口-多态
# 接口 interface接口只有方法声明,没有实现,没有数据字段接口可以匿名嵌入到其它接口或结构体中接口不能绑定方法实现package mainimport "fmt"//接口type Persion interface { sayHey() //方法声明}type Stu struct{ //Persion name string}//实现接口...原创 2018-11-17 12:59:29 · 164 阅读 · 0 评论 -
Go/面向对象特性/方法-封装
# 可以为任意自定义类型(结构体、基础数据类型)绑定方法,但不包括指针类型# func (t T) f(paras) (rets) //接收者 参数 返回值# 方法总是绑定对象实例t,并隐式地将实例t作为第一实参# 方法中若不使用t,可以省略# t的类型可以是T或*T,但T不能是接口或指针# 不支持方法重载# 同一方法名绑定不同接收者类型,不视为重名packa...原创 2018-11-16 23:13:29 · 188 阅读 · 0 评论 -
Go/面向对象特性/匿名字段-继承
# 通过匿名字段实现继承特性package mainimport "fmt"func main() { type Persion struct{ name string age int } type Stu struct{ Persion //匿名字段 只有类型没用名字 no int socre int } var s Stu = Stu{Pe...原创 2018-11-16 22:15:09 · 221 阅读 · 0 评论 -
Go/复合数据类型/struct-结构体
# 结构体package mainimport "fmt"type Stu struct{ age int sex byte //字符型 name string}func main() { //结构体定义与初始化 //顺序初始化 每个成员都必须初始化 var s Stu = Stu{18,'m',"Lusa"} fmt.Println(s) //{18 ...原创 2018-11-16 20:51:23 · 531 阅读 · 0 评论 -
GoLang
# Go语言25个关键字包管理关键字:package import变量与常量关键字:var const函数关键字:func return复合数据类型关键字:map range自定义类型关键字:type struct interface流程控制关键字:if else switch case default fallthrough for contini...原创 2018-11-16 12:39:57 · 264 阅读 · 0 评论 -
Go/复合数据类型/map-字典
# map是一种键值对存取的复合数据类型package mainimport "fmt"func main() { //map 无序 键值唯一 //键值一般是基本数据类型(不能是切片等数据类型、不能是函数类型) //map 只有len() 没有cap() //声明定义一个map变量 var m map[int]string m1 := make(map[int]str...原创 2018-11-16 12:14:39 · 577 阅读 · 0 评论 -
Go/复合数据类型/切片-slice
##切片package mainimport ( "fmt" "math/rand" "time")func main() { //切片slice的创建 arr := [...]int{0,1,2,3,4,5} arr1 := []int{0,1,2,3,4,5} arr2 := make([]int,6,8) arr3 := make([]int,6) fmt....原创 2018-11-15 00:44:20 · 181 阅读 · 0 评论 -
Go/复合数据类型/数组
# 一维数组的定义与初始化func test(){ var a [5]int var a2 [5]int = [5]int{1,2,3,4,5} a3 := [5]int{1,2,3} a4 := [5]int{2:2,4:4} fmt.Println(a) fmt.Println(a2) fmt.Println(a3) fmt.Println(a4)}=====...原创 2018-11-14 22:29:28 · 276 阅读 · 0 评论 -
Go/函数/不定参数
## 接收用户传递参数package mainimport ( "fmt" "os")func main() { args := os.Args fmt.Printf("len(args):%d\n",len(args)) for _,v := range args { fmt.Println(v) }}# 不定参数package mainimpo...原创 2018-11-14 00:07:35 · 199 阅读 · 0 评论 -
Go/流程控制/defer-延迟调用
## defer延迟调用,函数结束前执行先进后出异常发生后,前面的defer语句依旧会执行常作 资源清理、异常处理package mainimport "fmt"func test(x int){ a := 1 / x a += a}func main(){ fmt.Println("1111111") test(0) fmt.Println("222...原创 2018-11-13 23:49:24 · 143 阅读 · 0 评论 -
Go/函数/匿名函数-闭包
## 匿名函数作为一个闭包,闭包以引用传递的方式捕获外部变量package mainimport "fmt"func test(){ a := 22 str := "go" //匿名函数,闭包 以引用传递方式捕获外部变量 func(){ a = 23 str = "gogo" fmt.Println(a,str) }() //直接调用匿名函数 fmt.Pr...原创 2018-11-13 23:26:25 · 250 阅读 · 0 评论 -
Go/函数/回调函数
## 回调函数package mainimport "fmt"type FuncType func (int,int) int//函数类型作为参数func callBack(a,b int, f FuncType) (c int){ c = f(a,b) return}func test(a,b int) int{ return a*b}func main()...原创 2018-11-13 22:42:18 · 284 阅读 · 0 评论 -
Go与C的函数类型定义及Go调用C的实现
## 函数作为一种数据类型package main/* #include <stdio.h> typedef int (*FuncType_C)(int,int); //c语言 函数类型 int test_C(int a,int b){ return a+b; } FuncType_C f_C = test_C; void test2_C(){ int ...原创 2018-11-13 22:28:03 · 203 阅读 · 0 评论