Go语言中文网 为您找到相关结果 348

InkPaper 最佳实践——使用 Travis CI 自动部署 Ink 博客到 GitHub pages

简介 纸小墨(InkPaper)是一个GO语言编写的开源静态博客构建工具,可以快速搭建博客网站。它无依赖跨平台,配置简单构建快速,注重简洁易用与更优雅的排版。使用 Travis CI 可以解决 自动构建和自动部署的问题, 这样能让我们更加专注书写。 什么是 Travis CI? Travis CI 是为 GitHub 上的项目提供构建和测试的分布式持续构建服务。这意味着你的静态博客最好是托管在GitHub Pages 上的。当 GitHub Pages 仓库激活 Travis CI 服务,当你的博客有新的修改提交到 GitHub 的时候,GitHub 会通知 Travis CI。它也可以被配置为只对特定的分支生效,或分支的名称匹配特定的模式。Travis CI 将会检查相关分支并执行之前在 ...阅读全文

Go 开发的 Web 框架go_wtf

WTF 是小型的Web框架:Web Tiny Framework WTF的目标不是重度框架,不考虑涵盖所有功能,重点放在简单和灵活性上 其实现了一个非常灵活的路由(Mux),并且路由的使用方法也极简单 还通过中间件(Midware)的方式实现了gzip等常用功能 所有的组件都通过接口来耦合,意味着开发者可以自己实现自己的组件,替换到WTF中 一个最简单的例子: 一个稍微复杂点的例子...阅读全文

开源项目 2018-01-11 20:30:01 网友

kingpin中Bool型参数的使用-golang

在使用go的kingpin作为启动参数传递的时候,遇到了一个问题,就是当传bool型的参数时总是出错: 默认情况下不传代表的是false,即在使用时咋启动参数中不输入这个参数的信息,当输入的时候是表示true。 下面上代码看下传参信息: var ( flag = kingpin.Command("server", "desc") flagBool = server.Flag("flagBool", "desc of param").Bool() ) func main() { switch kingpin.Parse() { case "server" : if *flagBool { fmt.println("flagBool", *flagBool) } } } 启动参数如下: #代表使...阅读全文

博文 2019-03-06 19:34:42 时彬斌

《Go语言程序设计》第7章练习

7.1 已知三角形三边a、b、c,编写函数求三角形面积公式area(),求三角形面积。 7.2 编写函数find(),在整型数组arr中查找最大元素下标max和最小元素下标min,要求数组作为函数参数,且使用多返回值同时返回查找结果max和min。 7.3 编写一个函数,用于计算float64类型Slice的元素平均值,要求将Slice作为函数参数传递给处理函数。 7.4 设计一个变参函数max(),该函数可以找出不定数量整型数组中的最大值。 7.5 编写函数fac(),使用递归调用计算n!。 7.7 使用panic-and-recover机制编写一个检测用户账号合法性的程序,比如用户中不能出现空格,不能出现非法字符,比如‘,’、'#'、'!'等...阅读全文

gf框架之gbinary - 二进制数据操作模块

文章来源:http://gf.johng.cn/500342 gf框架提供了独立的二进制数据操作包gbinary,主要用于各种数据类型与[ ]byte二进制类型之间的相互转换;以及针对于整型数据进行精准按位处理的功能。常用于网络通信时数据编码/解码,以及数据文件操作时的编码/解码。 用于二进制数据结构转换处理的方法列表如下: func Encode(vs ...interface{}) ([]byte, error) func EncodeInt(i int) []byte func EncodeInt8(i int8) []byte func EncodeInt16(i int16) []byte func EncodeInt32(i int32) []byte func EncodeIn...阅读全文

博文 2018-04-10 18:34:40 John

golang模板语法简明教程

golang模板语法简明教程 【模板标签】 模板标签用"{{"和"}}"括起来 【注释】 {{/* a comment */}} 使用“{{/*”和“*/}}”来包含注释内容 【变量】 {{.}} 此标签输出当前对象的值 {{.Admpub}} 表示输出Struct对象中字段或方法名称为“Admpub”的值。 当“Admpub”是匿名字段时,可以访问其内部字段或方法,比如“Com”:{{.Admpub.Com}} , 如果“Com”是一个方法并返回一个Struct对象,同样也可以访问其字段或方法:{{.Admpub.Com.Field1}} {{.Method1 "参数值1" "参数值2"}} 调用方法“Method1”,将后面的参数值依次传递给此方法,并输出其返回值。 {{$admpub}...阅读全文

博文 2016-02-24 12:00:12 zhaoxiatengkong_1

Golang 命令行自动设置网卡名称为LAN or WAN

package main import ( "fmt" "net" "os" "os/exec" "strings" ) func main() { if len(os.Args) != 2 { fmt.Printf("Usage:\n%s 110.10.25.0/24\n", os.Args[0]) return } _, ipnet, err := net.ParseCIDR(os.Args[1]) if err != nil { fmt.Printf("ParseIP Error:\n%s\n", err) return } intfs, err := net.Interfaces() if err != nil { fmt.Printf("Get Addr error:\n%s\n"...阅读全文

博文 2016-10-05 10:00:03 fyxichen

互融云数字货币永续合约交易系统

永续合约 是一种衍生品。从交易的角度来说,它类似于传统的期货合约,但又有一些不同之处。首先它没有到期或结算日,永续掉期合约类似于一个保证金现货市场,因此它的交易价格接近于标的参考指数价格,这与期货合约不同,由于基差的原因,期货合约的交易价差可能存在显著的不同。其次锚定现货价格的主要机制是资金费用。互融云推出的永续合约交易系统支持双向交易,多杠杆,多风险控制,风险管控分为警戒线,禁止开仓线,强平线,降低用户风险率;并且平台引入了用户和平台对赌,以及代理商推荐返佣机制,推动了平台用户的发展。1)系统角色 2)交易流程 互融云数字货币永续合约交易系统介绍:1)合约模型设计交易方式:市价交易、限价交易合约周期:无定时交割时间,用户可自由选择交割时间隔夜费设置:用户购买每超过24小时则会收取隔夜费合约...阅读全文

博文 2019-08-19 20:02:47 互融云软件

简单易用的命令行应用,工具库

Golang下的简单易用的命令行应用,工具库。包含运行命令,颜色风格,数据展示,进度显示,交互方法等 ## 截图展示 ![app-help](https://raw.githubusercontent.com/gookit/gcli/master/_examples/images/app-help.jpg) ## 功能特色 - 使用简单方便,轻量级,无额外依赖 - 支持添加多个命令,并且支持给命令添加别名 - 输入的命令错误时,将会提示相似命令(包含别名提示) - 快速方便的添加选项绑定 `--long`,支持添加短选项 `-s` - 支持绑定参数到指定名称, 支持必须`required`,可选,数组`isArray` 三种设定 - 运行命令时将会自...阅读全文

go func 定义

```go func (table *CacheTable) Foreach(f func(key interface{}, item *CacheItem)) { table.RLock() defer table.RUnlock() table.addLoadData = f } func (table *CacheTable) SetDataLoader(f func(interface{}, ...interface{}) *CacheItem) { table.Lock() defer table.Unlock() table.loadData = f } ``` 请问这两个函数中的参数f的参数区别是什么,有什么作用...阅读全文

go语言学习 1-初识go语言

go语言的基本特性: 1 自动垃圾回收 2 新增的内置类型,map和数组切片。java中map需要导入系统包。数组切片似乎类似于java的ArrayList(暂不确定) 3 函数多返回值 func getInfo(p1,p2,p3){ return s1,s2,s3,s4; } 4 错误处理 5 匿名函数和闭包,函数也是类型,可以当做参数传递 6 类型和接口,一个类型可以动态绑定一个接口 7 并发编程 8 反...阅读全文

博文 2015-06-17 23:02:29 qibobo

学习golang过程中遇到的坑

defer与panic func中defer是队列形式存储的,panic执行后面的defer不加入队列 package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { fmt.Println("打印中") }() defer func() { fmt.Println("打印后") }() panic("触发异常") } range 重用地址 range 循环,会重用地址,也就是说,for _, stu := range stus 中的 stu 总是在同一个地址 type student stru...阅读全文

博文 2017-06-21 07:06:58 土豆_大大

Go 语言 time 包常用用法笔记

Go 的时间操作基本上都用 time 包,比 C 的 time 函数和 timeval 等 struct 好用多了。不过 time 包还是有不少用法和其他语言不同的,所以有必要写个笔记记录一下。 本文链接:https://segmentfault.com/a/1190000020944345,首次发布于云+社区 *time.Location 类型 和其他文章不同的是,本文我从时区讲起。在 Go 中,表示时区的类型是 type Location struct{...},代码中使用 *time.Location 对象。 对于不严格的场景而言,可以获取服务器所处的时区。但是本文不建议这个方法。因为一台服务器服务的时区是事先可知的,或者说是需要对接的时区信息也是已知的(比如对接微信,那么时间肯定是东...阅读全文

博文 2019-11-08 12:32:52 amc

阿里云专有网络VPC使用教

课程介绍 专有网络VPC可以帮助您基于阿里云构建出一个隔离的网络环境,并可以自定义IP 地址范围、网段、路由表和网关等;此外,也可以通过专线/VPN/GRE等连接方式实现云上VPC与传统IDC的互联,构建混合云业务。 产品详情:https://www.aliyun.com/product/vpc 课时列表 • 课时1:专有网络介绍 • 课时2:创建专有网络 • 课时3:创建交换机 • 课时4:在交换机中创建云产品实例 • 课时5:添加自定义路由 开始学习:http://click.aliyun.com/m/27843/ ...阅读全文

Django 使用多个数据库

在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接。 参考:http://blog.csdn.net/songfreeman/article/details/70229839 1. 修改项目的 settings 配置 在 settings.py 中配置需要连接的多个数据库连接串 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }, 'ora1': { # 配置第二个数据库节点名称 'ENGINE': 'django.db.backend...阅读全文

博文 2019-03-11 18:34:41 51reboot

go的goroutine问题

在写gobyexample的时候遇到一个问题如下 https://gobyexample.com/worker-pools package main 2 import( 3 "fmt" 4 "time" 5 ) 6 type Message struct { 7 id int 8 data string 9 } 10 func main(){ 11 ch1:=make (chan Message ,19) 12 ch2:=make(chan Message ,19) 13 for i:=0;i<4;i++{ 14 go func (){ 15 f1(i,ch1,ch2) 16 }() 17 } 18 for i:=0;i<19;i++{ 19 var m Message 20 m.id=i ...阅读全文

博文 2015-06-17 23:08:22 xiujiangdeluwei

微信golang签名算法

type WXPrams struct { m map[string]interface{} // 参数 sign string // 签名 } func (p *WXPrams) InitSign() { var keys []string for k, _ := range p.m { keys = append(keys, k) } sort.Strings(keys) builder := strings.Builder{} for _, v := range keys { builder.WriteString(v) builder.WriteString("=") builder.WriteString(fmt.Sprint(p.m[v])) builder.WriteStrin...阅读全文

博文 2019-01-02 19:34:46 AlberLiu

Go 编程: 那些奇怪的注释

自从上篇总结了一下Go 编程: 交叉编译 vs 条件编译之后,觉得有必要对于类似条件编译标签此类的特殊注释做一次简单收集。 1. 常规注释 每种开发语言都有自己的注释语法和格式,也大多类似。 Go 语言和市面上其它多种高级语言的注释语法也类似,主要有以下两种语法格式: 注释行 以符合 // 开头 注释块 以符号 /* 注释内容 */ 包括 通常情况下, 对外公开的包、函数、常量、变量均需要进行注释。代码是否注释完全,可以通过lint工具进行审查。不了解的话,可以参考像 Awesome-Go 一样提升企业 Go 项目代码质量一文。 但是,以上也就仅仅是正常情况。在很多特殊情况下,一些看似符合以上注释语法的地方,却不是注释,也是本文整理的重点。 2. “奇怪”的注释 2.1 条件编译 在一些特殊...阅读全文

博文 2019-08-04 23:19:05 JayL

GO语言函数与类型

package main import () import ( "fmt" "reflect" "errors" ) type age int type userFunc func(name string) error func (fn *userFunc)String() string { return "我是函数你String个毛" } func main() { var fn userFunc = * new(userFunc) fn = func(name string) error { fmt.Println("参数是:", name) return errors.New("。。。。oh shit 函数也能new。。。。还能当类型") } fmt.Println(fn("oh no...阅读全文

博文 2016-06-15 09:00:00 mrye

angular中$state.go跳转页面并传递参数

遇到一个页面跳转的时候,在跳转后的页面获取跳转前页面的数据,我想到用一种是localstorage,一种用broadcast和on,然后老大说不用这么麻烦,既然都$state.go了直接带参数,这次就介绍一下$state.go页面跳转传递参数。 1.路由页面(注意这里要在路由上添加一个参数用于传递数据,不然在页面跳转的时候会filter) .state("home.workpiece",{ // 跳转前的页面 url:"/workpiece", views: { home: { templateUrl: prefix + "project/workpiece.html", controller: "workpieceCtrl" } } }) .state("home.workpieceDet...阅读全文

博文 2017-05-08 14:00:26 Jiaen188

go中的接口

接口 GO语言中的接口是由一个方法的集合代表 一个接口类型的变量,可以与任何实现了这个接口类型的的 数据类型的值绑定 接口嵌套 type SortTable interface{ sort.Interface Sort() } 其中sort.Interface 包含 swap,less,len接口 需要注意的是,不能嵌套自身 GO语言不支持泛型类型...阅读全文

博文 2016-11-20 11:00:04 u014660247

GO函数总结(转)

GO语言函数与C,JAVA等有点很大的区别,大致如下: 一、函数的定义 例如: func max(a, b int) int{//返回a,b里面最大的一个,而且要注意函数的参数和返回值类型是怎么定义的 if b>a{ return b } return a } 二、多值返回 GO语言中一个函数可以有多个返回值。 举个最简单的例子 package main import ( "fmt" ) var a int func main() { b := []byte{1, 2, 3, 4} var x int for i := 0; i < len(b); { x, i = nextint(b, i)//最终的i的返回结果是len(b) fmt.Println(x) } } func ...阅读全文

博文 2015-10-23 03:00:06 zhuiluoyu

Golang Echo数据绑定中time.Time类型绑定失败

1、首先看官方绑定,time.Time将绑定失败 func(c echo.Context) (err error) { u := new(User) if err = c.Bind(u); err != nil { return } return c.JSON(http.StatusOK, u) } 2、自定义绑定 加入Struct类型判断: image.png 直接添加选项 case reflect.Struct: //时间类型 var t time.Time var err error val = strings.Replace(val, " 00:00:00", "", -1) if IsValidDate(val) { //判断日期格式 t, err = ParseDate(val)...阅读全文

博文 2018-08-03 17:34:48 承诺一时的华丽

Golang实现的文件上传

upload.go package main import ( "crypto/md5" "fmt" "html/template" "io" "log" "net/http" "os" "strconv" "time" ) // 处理/upload 逻辑 func upload(w http.ResponseWriter, r *http.Request) { fmt.Println("method:", r.Method) //获取请求的方法 if r.Method == "GET" { crutime := time.Now().Unix() h := md5.New() io.WriteString(h, strconv.FormatInt(crutime, 10)) token :...阅读全文

博文 2017-12-22 02:03:07 肖敏哥

beego配置CSS文件需要怎样设置?

刚开始了解beego,遇到点问题。 ![image.png](https://static.studygolang.com/180509/7445c9238078f0aa20807a10f611e34c.png) 在页面引用了css样式,打开页面时候显示下载错误,css文件也需要设置路由吗? 查找了一些资料beego.SetStaticPath beego.SetViewsPath这两个可以设置静态文件路径, 这两个函数具体作用是干什么的?还麻烦大神多多指教...阅读全文

golang月薪10k应该具备哪些知识?

对于程序员来说,10K不是一个很高的要求和门槛。 具体到Go语言来说,现在接受大部分Go语言开发岗位的,还是以大的BAT以及TMD等这些大的互联网公司开展业务为主。这些大厂的薪资和人员素质也决定了不会是10K这个水平。 如果要必须用10K衡量一下技能点位的话,其实这个就是个基础岗位的薪水水平。具体来说,只要掌握具备Go的一些语法,懂开发,能进行模块开发即可。按照下面的知识点来掌握: - 基本语法 - 进制及转换 进制、进制转换、机器数和真值、原码、反码与补码 - 变量与常量 变量概念、声明变量、常量及声明、特殊常量iota - 布尔型Bool - 数值型 整形、浮点型、byte、rune、uintptr - 字符串型 - 复合类型(派生类型) 指针类型、数组类型、结构化类型、Channel类...阅读全文

博文 2019-04-11 15:35:25 qfhanru

Go之一步步学习RabbitMQ(二)

文来自:灰子学技术,原文链接:https://mp.weixin.qq.com/s/AWlfFB8TUKw5vMsAgrmRKA写在前面的话:本篇文章主要来讲解,RabbitMQ的路由知识,在开始之前,笔者问了自己几个问题。笔者觉得一旦知道了这几个问题的答案,那么关于RabbitMQ的路由这部分知识基本上算事熟悉了,所以还希望大家带着这些问题来阅读本篇文章。1. 为什么RabbitMQ需要路由呢?它们有什么用?2.路由都有那些分类?各自有什么特点?3.这些路由是如何实现消息转发的?一、RabbitMQ的路由知识介绍1、对于生产者来说,它可以生产一类消息,也可以生产多类消息,一旦生产了多类消息,那么生产者如何将不同类的消息发送给不同的消费者呢?对于这个问题的答案,其实最常用的办法,便是路由,可...阅读全文

博文 2019-11-08 09:26:15 ZhDavis

干货速递 ▎Kubernetes有状态集群服务部署与管理(上)

2016年12月2日,时速云架构师张寿红应邀参加ArchSummit2016全球架构师峰会,并在微服务与容器实践专场做了《Kubernetes有状态集群服务部署与管理》的干货分享。 ![](http://blog.tenxcloud.com/wp-content/uploads/2016/12/ArchSummit%E5%8C%97%E4%BA%AC2016%E5%BC%A0%E5%AF%BF%E7%BA%A204.jpg) 现场演讲图 由于篇幅关系,第一部分Kubernetes相关概念略过不提,本文将结合分享内容,对《Kubernetes有状态服务部署与管理》之**K8S存储系统**做重点阐述。对K8S有状态服务特性:**Init Container** 和 **Pet ...阅读全文

写了一个Java like的ExecutorService的Go语言实现

练习下刚刚学的Go语言。GoExecutors 主要用法可以看main.go文件。 主要是想用Java处理并发的ExecutorService系列工具类的模式,在Go语言中重写,体验下两种语言的异同。 其中,第一个版本用了一个共享的map,后来改成现在这样子,用闭包来绑定数据到Callable上。 体会就是,Go语言还是尽量用goroutine和chan比较好...阅读全文

博文 2017-01-01 15:00:01 LinkerLin

Go的函数参数总是传值

As in all languages in the C family, everything in Go is passed by value. That is, a function always gets a copy of the thing being passed, as if there were an assignment statement assigning the value to the parameter. For instance, passing an int value to a function makes a copy of the int, and passing a pointer value makes a copy of the pointer, ...阅读全文

博文 2016-10-28 16:00:03 caiyang101

征服go开始

上一个主题说明了,在ubuntu下的go语言开发环境的搭建,下面就开始我们征服go的征程了,为了首先来了解go语言的特色,我们还是首先来一个最简单的测试“hello world!”测试代码。 在go语言中的实现代码是很简洁的。下面就进行最间的测试代码编写。 package main import "fmt"//导入包,包含打印函数 func main(){ fmt.Print("hello world!")//此处结束也可以添加‘;’ } tsong@tsong:~/exc$ go build gotest.go #编译 tsong@tsong:~/exc$ ./gotest #运行 hello world! go语言的数据类型和使用 在go语言中内置了很多的数据类型,可以很方便的供我们使用...阅读全文

博文 2016-05-21 16:00:01 u010165367

golang http 路由

来看看 http 自带的路由功能。 阅读前留几个问题 如果要自己实现路由,该怎么做? 默认路由的结构,搜索方式是什么? 例子 我们经常在示例中看到如下两种写法,示例来自于 stackoverflow // 使用 DefaultServeMux func main() { http.HandleFunc("/page2", Page2) http.HandleFunc("/", Index) http.ListenAndServe(":3000", nil) } // 使用 ServeMux 路由 func main() { mux := http.NewServeMux() mux.HandleFunc("/page2", Page2) mux.HandleFunc("/", Index) ...阅读全文

博文 2019-06-04 21:32:39 咔叽咔叽_

python go php 函数参数传递总结

php 参数传递等价赋值操作 数组默认是深度拷贝 ,可以添加&来引用传递 对象默认是浅拷贝 类似引用传递 其他默认是深度拷贝 python 所有类型都是对象 Python中的对象有可变对象(number,string,tuple等)和不可变对象之分(list,dict等) 1. 不可变对象作为函数参数,相当于C系语言的值传递。 2. 可变对象作为函数参数,相当于C系语言的引用传递。 go 所有类型也是对象 引用传递通过指针实现 其他默认是值传...阅读全文

博文 2016-10-12 14:00:03 pzqingchong

Go 每日一库之 validator

简介 今天我们来介绍一个非常实用的库——validator。validator用于对数据进行校验。在 Web 开发中,对用户传过来的数据我们都需要进行严格校验,防止用户的恶意请求。例如日期格式,用户年龄,性别等必须是正常的值,不能随意设置。 快速使用 先安装: $ go get gopkg.in/go-playground/validator.v10 后使用: package main import ( "fmt" "gopkg.in/go-playground/validator.v10" ) type User struct { Name string `validate:"min=6,max=10"` Age int `validate:"min=1,max=100"` } func ...阅读全文

博文 2020-04-05 21:32:53 darjun

Beego+go-sqlite3 Arm平台移植遇到的问题

在windows下使用Beego+go-sqlite3进行简单博客开发, 但编译后将其植入Arm平台下运行异常:编译参数设置: SET GOARCH=armSET GOOS=linuxSET GOARM=7go build 首先, 提示sqlite3应用问题, 应开启CGO_ENABLED=1此项解决:SET GOARCH=armSET GOOS=linuxSET GOARM=7SET CGO_ENABLED=1SET CC=arm-linux-gnueabihf-gccgo build 接着, 错误如下F:\Program Files (x86)\GO\pkg\tool\windows_amd64\link.exe: running arm-linux-gnueabihf-gcc fail...阅读全文

博文 2018-08-10 14:35:30 不当仙女

爬虫自动转码,获取城市列表:城市名称+URL

//下载插件工具 go get -v github.com/gpmgo/gopm //自动导入包插件 gopm get -g -v golang.org/x/tools/cmd/goimports //转码插件 gopm get -g -v golang.org/x/text //自动检测网页编码 gopm get -g -v golang.org/x/net/html package main import ( "net/http" "io/ioutil" "fmt" "golang.org/x/text/transform" "io" "golang.org/x/text/encoding" "golang.org/x/net/html/charset" "bufio" "regexp"...阅读全文

博文 2018-08-24 17:35:08 次序

Go语言_array,slice,map

首先庆祝下golang终于通过了gfw的审核,可以不用FQ访问了。goer就可以光明正大地访问http://golang.org/ 这次还是要说说array,slice,map。虽然前面已经说过了,但是实际使用中发现对这几个的使用和理解还是不够详细 现在再重新看看这几个类型 array类型 array是固定长度的数组,这个和C语言中的数组是一样的,使用前必须确定数组长度。但是和C中的数组相比,又是有一些不同的: 1 Go中的数组是值类型,换句话说,如果你将一个数组赋值给另外一个数组,那么,实际上就是将整个数组拷贝一份 2 如果Go中的数组作为函数的参数,那么实际传递的参数是一份数组的拷贝,而不是数组的指针。这个和C要区分开。因此,在Go中如果将数组作为函数的参数传递的话,那效率就肯定没有传递...阅读全文

博文 2016-07-11 02:00:07 yjf512

无法获取到 post 请求体中的参数,麻烦大佬给看看

这是我的SignIn方法代码


func SignIn(rw http.ResponseWriter, req *http.Request) {
	if req.Method != http.MethodPost {
		rw.WriteHeader(http.StatusBadRequest)
		return
	}
	req.ParseForm()
	fmt.Println(req.Form)
	fmt.Println(req.FormValue("phoneNum"))

	for k,v := range req.Form{

				fmt.Println("key:",k)
				fmt.Println("val:",str...阅读全文

Go 语言基本类型总结

Go 基本类型 (1) bool 取值 false, true (2) string 单行 "str" `str` (3) 整型: int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr byte <-> uint8 rune <-> int32 (4) 浮点型:float32 float64 (5) 复数:complex64 complex128 e.g. 1+2i 复合类型 (1) struct type S struct { field type } (2) interface type I interface { func(args) type } 类型转换 GO语言是强类型语言,使用变量之前需要声明其类型...阅读全文

博文 2015-06-17 23:00:33 u013148156

使用gorilla/mux增强Go HTTP服务器的路由能力

今天这篇文章我们将会为我们之前编写的HTTP服务器加上复杂路由的功能以及对路由进行分组管理。在之前的文章《深入学习用 Go 编写HTTP服务器》中详细地讲了使用net/http进行路由注册、监听网络连接、处理请求、安全关停服务的实现方法,使用起来非常方便。但是net/http有一点做的不是非常好的是,它没有提供类似URL片段解析、路由参数绑定这样的复杂路由功能。好在在Go社区中有一个非常流行的gorilla/mux包,它提供了对复杂路由功能的支持。在今天这篇文章中我们将探究如何用gorilla/mux包来创建具有命名参数、GET/POST处理、分组前缀、限制访问域名的路由。 安装gorilla/mux包 我们在之前写的HTTP服务的代码根目录,使用go get命令从GitHub安装软件包,如...阅读全文

博文 2020-02-05 21:32:40 Kevin

golang学习笔记1-类型与变量

也不知道是在哪看到了go这门语言,当时觉得这名字真好听,后来发现它不光名字好听,还有个强大的爹google~ 听说是一门擅长高并发的静态语言,于是带着好奇心开始了golang的未知旅程。 因为之前我们服务端是用c++跟lua,c++做底层开发,大部分逻辑用lua写,而lua这种动态语言的通病显而易见,虽然灵活、开发效率是很快,但是后期维护,代码可读性很差,大部分时间用在理解代码跟查找问题上反而得不偿失。所以也是想看看还有没有别的操作~ 1.类型 golang可以用var定义变量,也可以不用var,用:=也是可以的 //结尾可以不用打分号 , 变量类型放在后面,很多人都说有种真气逆行的感觉 //之前我写actionscript3其实也是类型放后面这样,也习惯这种操作了 var x int va...阅读全文

博文 2017-06-12 18:06:55 那个少年

golang 基础(11)函数参数

square-gopher.png 函数中的参数 定义函数可以没有任何参数就像 main 函数 func main(){ } 定义函数的参数时和其他语言没有什么不同,指定参数名称和参数类型 func sayMessage(msg string){ // body } 如果参数类型一致我们可以省略 greeting 后面指定类型 func sayGreeting(greeting, name string){ fmt.Println(greeting, name) } 我们可以尝试在 sayGreeting 内部修改 name 这个变量,因为函数作用域这些修改name 不会影响到函数外面的 name 值,这是大家的尝试。 func sayGreeting(greeting, name stri...阅读全文