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

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语言学习

自己名义上是在搜索部门,但主要做的是文本相关的工作。所以想自己如果说自己不会搜索,也挺尴尬的。于是找了一个叫wukong搜索的搜索引擎,打算学习一下。wukong搜索是用go语言写成的,所以正好学习下这门google的语言,然后顺便学习下wukong搜索,也算是一举两得。 本系列会主要写一些go语言学习相关的知识点,主要是一些跟其他语言(例如c,python)不同的点,会单独列出来。主要内容会基于go语言编程这本书来做学习,相关的代码会放到github上。 最后会对wukong搜索做一个比较详细的解释。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('...阅读全文

博文 2016-07-07 22:00:06 kamendula

Awesome go 增强

作为一个gopher,会经常查找golang已有的软件包,这个时候查看Github上的 [Awesome go](https://github.com/avelino/awesome-go) 中已经分门别类列出来的资源是经常的事。 但是,这个项目只是把github中的项目分类列出来而已,满足我的项目需求的包可能有很多个,我要从这些包中选择出最适合我的包,比如我的选择条件是: 1. star或者fork多,这说明gopher大众的认可程度高; 2. commits 或者 contributors 多,这说明项目的升级维护可能有保障; 3. 看license是不是支持商用,我首选Apache2.0,其次是MIT,其他的都得掂量掂量。 一个项目一个项目的点进去看这些数据,这种选择...阅读全文

google host 2014

google hosts 2014.12.10 更新,本文只提供google相关服务的hosts,目前有效,失效后会及时更新。 注1:请使用chrome浏览器,并在地址栏里输入 chrome://flags/,然后查找QUIC,启用该协议,同时建议启用SPDY/4,能让访问更流畅。 注2:请使用https的方式访问,比如:https://www.google.com 注3:默认可能会跳转到www.google.com.hk,如果.hk访问困难,请使用:https://www.google.com/ncr 方式访问,禁止国别跳转。 ====更新分界线,复制下面内容到hosts文件即可====== #google hosts 2014 by 360kb.com #base services 64...阅读全文

博文 2015-06-17 20:12:47 spy19881201

C Bindings in Go: A Practical Example Part 1

这篇文章对于想在go中使用c语言的朋友应该很有帮助,一步步讲解了怎么做。 另外,按照文章一步步做,需要安装 libspotify 库,可以到这里下载,各大平台都支持:http://developer.spotify.com/technologies/libspotify/ 文章链接:http://codegangsta.io/blog/2013/07/08/c-bindings-in-go-a-practical-example/ (其实点击标题也会跳转到原文...阅读全文

golang中encoding/pem包

1、golang中pem包是什么? 2、golang中的pem包为我们开发者提供了哪些功能? 3、我们可以用pem包做什么?以及怎么使用代码实现? 一、golang中pem包是什么? 官方标准库给出的解释:pem包实现了PEM数据编码(源自保密增强邮件协议)。目前PEM编码主要用于TLS密钥和证书。参见RFC 1421 也就是这个包实现了对PEM解码,以及进行PEM编码 我们不必关心PEM格式的数据长怎么样,只要关注怎么将其他格式数据转换成PEM格式数据,以及将PEM格式数据转换成其他格式数据。如果需要了解PEM是什么,可以阅读RFC 1421文档。 二、golang中的pem包为我们开发者提供了哪些功能? 根据前面分析出来的内容,可以知道分为两个内容,分别是对数据进行PEM编码和解码。也就...阅读全文

博文 2018-12-11 03:34:42 laijh

Golang - OAuth2.0使用 - fasthttp版本

### OAuth2.0在golang下的使用 ##### 一、简介 > 1、OAuth2.0使用https来做安全保护,避免了OAuth1.0的复杂加密,让开发人员更容易使用。 > 2、接入的四种模式,一般采用授权码模式,比较安全,其次是密码模式,不建议使用,其他2种更不推荐。 ##### 二、接入流程 ![授权码流程图](https://img-blog.csdnimg.cn/20191123231151293.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d5YW5zYWk=,size_16,color_FFFFFF,t_70...阅读全文

博文 2019-11-24 12:42:24 wyanlord

Go语言中的流程控制

## 1 概述 Go语言提供了条件分支 if,状态分支 switch,循环 for,跳转 goto,延迟执行 defer,这些流程控制语句。分别作说明如下: ## 2 条件分支 if 依据条件是否满足确定执行哪个分支。 语法: ``` if 条件 1 { 分支 1 } else if 条件 2 { 分支 2 } else if 条件 ... { 分支 ... } else { 分支 else } ``` 流程图: ![if](http://www.hellokang.net/images/posts/go/go-if.png) Go是强类型,要求条件表达式严格返回布尔型数据! ## 3 状态分支 switch ### 3.1 基础 状态分支,依据特定的状态值进行分支判断。 语法: ``` s...阅读全文

博文 2018-10-30 22:02:40 hanzkering

不学无数——Mybatis解析判断表达式源码分析

Mybatis解析判断表达式源码分析在我们开发过程中用 Mybatis 经常会用到下面的例子Mapper如下Map testArray(@Param("array") String [] array);XMl中的sql如下刚看上面的代码会觉得数组怎么能和空字符串进行一起比较呢,一开始会觉得这个代码运行起来绝对报错...阅读全文

博文 2018-10-12 21:12:32 Enjoyjava

golang学习笔记[1] 基础知识

golang发现就很好玩。 很久没有写日志了,继续恢复吧。 // one project main.go package main import ( "errors" "fmt" "math" "os" ) func main() { /* Go语言基础类型 布尔类型:bool 整型:int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,byte,uintptr (一般使用int和unit就好啦) 浮点类型:float32,float64 复数类型:complex64,complex128 字符串:string 字符类型:rune 错误类型:error Go语言复合类型 指针 pointer 数组 array 切片 siice ...阅读全文

博文 2015-06-17 20:05:15 zhouyunxuan

使用golang编写Web程序(三)

上一节我们使用go语言加载了一个纯文字的html页面,但是没有实现交互功能,我们改造一下html页面,增加两个页面代码如下: input.html

<input name="username" value="">
output.html 你好:{{.username}} 上面html代码通过form的POST方法发送请求数据到服务端,服务端代码如下: main.go package main import ( "fmt" "html/template" "log" "net/http" ) func InputHandler(w ...阅读全文

博文 2018-12-29 10:35:57 渣渣曦

golang select channel 如何保证安全退出,不丢失数据?

今天研究了一下channel的源码,对channel的安全退出有了一些小见解。在此结合实际应用,对select 于channel结合对情况下,安全退出channel做一下记录。场景1:直接退出(会丢失数据) 因为退出时,直接程序就中断了,channel里存对数据直接丢失。package main import ( "fmt" "sync" "time" ) var ( wg sync.WaitGroup channel = make(chan int, 10) ) func main() { //先写满一个channel for i := 0; i < 10; i++ { channel <- i } wg.Add(1) go func() { defer wg.Done() for { s...阅读全文

博文 2020-03-01 22:38:02 yuanshuli11

从零学习 Go 语言(11):goto 无条件跳转

Hi,大家好呀,我是一个刚学习 Go 语言不久的新手,在入门 Golang 的这段时间里,我写了很多详细的学习笔记,很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go编程时光》里,今天开始将文章内容搬运到这里,希望有更多的人看到,给更的人带来帮助,但是这里文章会相对滞后,想获取最新文章,可以前往关注《Go编程时光》,请放心关注,这是一个纯分享的号,完全没有广告。 **系列导读** [从零学习 Go 语言(01):一文搞定开发环境的搭建](https://studygolang.com/articles/27365) [从零学习 Go 语言(02):学习五种变量创建的方法](https://studygolang.com/articles/27432) [从零学习 Go 语言(0...阅读全文

博文 2020-05-06 08:35:20 hello_wbm

兄弟连区块链教程以太坊源码分析CMD深入分析(二)

cmd包下的geth子包主函数启动的各个子命令解析/gethinitfunction:导入创世块的json,以指定的json作为创世块args:demo: init /home/yujian/eth-go/genesis.jsonnotice:ethereum默认创建路径为home目录的.ethereum,如果该目录下已经写入过创世快,会执行失败success_result_demo:WARN [01-16|10:25:12] No etherbase set and no accounts found as defaultINFO [01-16|10:25:12] Allocated cache and file handles database=/home/yu...阅读全文

博文 2018-10-18 15:34:44 兄弟连区块链培训

小白求助 退出登录时点击链接自动跳转到根目录

登录时跳转都正常,退出时就会自动跳转到根目录,看了好几天没有找到问题原因在哪儿,遇到这种问题我们通常应该怎么去分析? ![image.png](https://static.studygolang.com/180430/f80c3b30f9eefb723461fbc58fa05ffc.png) ![image.png](https://static.studygolang.com/180430/8208f51879a7816be5070acb9557f5d9.png) ...阅读全文

emacs 中go的自动补全

之前一直使用的是 gocode (https://github.com/nsf/gocode ), 后来项目不维护了让用 https://github.com/mdempsky/gocode, 然后这个项目又不维护了,让用 https://github.com/stamblerre/gocode, 然后这个项目也不维护了,都一齐推荐使用 gopls. gopls 的介绍见 https://github.com/golang/tools/blob/master/gopls/README.md, 从地址中看出,这是一个 golang 官方tools 库中的项目。应该以后不会再换了。不过从介绍上看,还处在 alpha 阶段,尚不稳定。2020 年上半年会发布稳定版。 gopls 是官方的 Lang...阅读全文

博文 2020-05-16 21:33:08 圣斗士皮皮

vs code配置golang环境

vscode开发golang时会出现,dot import的时候无法跳转到定义的问题。 解决方式: go get github.com/zmb3/gogetdoc 然后在vs code的settings.json配置文件中添加 "go.docsTool": "gogetdoc", 以下是完整的settings.json { "files.autoSave": "onFocusChange", "go.buildOnSave": true, "go.lintOnSave": true, "go.vetOnSave": true, "go.buildFlags": [], "go.lintFlags": [], "go.vetFlags": [], "go.useCodeSnippetsOnFu...阅读全文

博文 2018-12-29 10:36:00 hexg1016

thinkphp分页格式的完全自定义,直接输入数字go到输入数字页

实现分页效果如下: 以下标注红色字体的为重点 找到文件page.class.php在ThinkPHP/Library/Thinkpage.class.php并打开文件,复制函数show,在本文件中黏贴并改成你自定义的函数名,在此我更改为show1,更改上一页,下一页,第一页和最后一页的逻辑输出,将数字链接for循环删除,其他不变,更改如下: public function show1() { if(0 == $this->totalRows) return ''; /* 生成URL */ $this->parameter[$this->p] = '[PAGE]'; $this->url = U(ACTION_NAME, $this->parameter); /* 计算分页信息 */ $thi...阅读全文

博文 2016-08-17 03:00:01 zhuyefengying

channel和select控制goroutines

最近有一个需求是在一个常驻内存的程序中结束相关任务。在Go中,创建一个goroutine非常简单,只需要go一下就可以了,但是如果我创建了很多goroutine,想要结束怎么办? 比如说我有一个死循环的例子 package main import ( "fmt" "sync" "time" ) func main() { queue := make(chan int, 20) var wg sync.WaitGroup for { // 就是一个死循环 queue <- 1 <-queue for i := 0; i < 10; i++ { wg.Add(1) go func(i int) { time.Sleep(5 * time.Second) fmt.Println("Sleep") ...阅读全文

架构师知识体系整理

抽空系统整理一下知识体系.仅仅作为一个纲要.1. 计算机基础1.1 CPUCPU指令流水线CPU多级缓存CPU缓存失效CPU 缓存一致性协议CPU MUMA架构多核CPU的演进CPU分支预测1.2 内存内存访问主内存工作内存虚拟内存页表/TLBMMAP内核page cache内核block cache进程地址空间内核地址空间1.3 磁盘机械磁盘/SSD/NVME ...顺序读写/随机读写内核 cache/预读cache脏页flush磁盘cachefsync/datasync/sync原子读写MMAPMMAP读写性能分析磁盘IO1.4 文件 本地文件远程文件虚拟文件系统卷MMA以及异常软链接/硬链接文件句柄/资源1.5 网络IO多路复用TCPHTTP/HTTPS代理带宽1.6 容器隔离CPU/...阅读全文

博文 2019-12-17 18:32:45 贺大伟

golang 环境配置建议

AUTH:PHILO VERSION:1.2 开发环境的必要特征 项目管理 快速文件跳转 自动语法检查 自动补全 查找定义 启动速度快 如果自己有需求的话插件可以随便写 灵活的运行配置 (project,lint,hint,autocomplete) 要实现上面几点我们来一步一步的配置。 我的大环境 OSX GO 1.4 HomeBrew go 环境安装 这一部分是最重要的,如果没有它,每次build的时候出现 too many errors 心里真的是非常难过的。 环境配置:(golint,gooracle,mercurial) 1. 安装mercurial: brew install mercurial> 这个东西是用来做版本管理的,也是下载代码的工具类似git,貌似google的项目用...阅读全文

博文 2017-02-09 13:43:48 Aomine

01-Go语言环境搭建

什么是GO语言 Go语言(Golang)是Google公司2009年推出的一门"高级编程语言" Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 Go语言的优势 简洁 快速 安全 并行 有趣 开源 内存管理 数据安全 编译迅速 应用场景 网络编程,如web应用 云平台开发 服务器编程 分布式系统... Go语言的SDK安装和配置 SDK(软件开发工具包(外语首字母缩写:SDK、外语全称:SoftwareDevelopmentKit)) 安装步骤 1.下载安装包 Golang下载地址:点击跳转 image 2.运行安装包 image image image image image image 3.配置环境变量 3...阅读全文

博文 2018-10-08 19:34:41 月色下的阳光

leetcode_1033

Golang: 思路:直接把我的题解搬上来吧 对abc进行排序,假定排完序后abc依次递增 条件1:b-a=c-b=1时,最小移动步数为0 条件2:不满足条件1, 那么看下b-a或者c-b有没有小于等于2的,有,那么最小移动步数为1 条件3:不满足条件1 2,那么最小移动步数为2 最大移动步数: 注意,这里是我不太理解的。我觉得以我对题意的理解,这题最大步数不是这么算的,比如 a=0,b=4,c=14 我可以先将a移动到7的位置,移动次数为7,移动后,位置变成[4,7,14] 再将4移动到10,移动次数为6,移动后,位置变成[7,10,14] 我认为这样的移动是符合题目给的条件的,但我此时就已经移动了13次了,而0 4 14的答案是12 题目想要我们求的最大移动步数,实际上是,max(a,b...阅读全文

博文 2020-02-19 15:32:48 淳属虚构

Mac下go vim环境搭建笔记

vim-go安装 .vimrc的配置 " Plugins managed by vundle if (isdirectory(g:vimPath . 'bundle/Vundle.vim')) let &runtimepath.=',' . g:vimPath . 'bundle/Vundle.vim' call vundle#begin() Plugin 'gmarik/Vundle.vim' Plugin 'fatih/vim-go' call vundle#end() endif 除了vim-go插件,还需安装vundle插件,这是一款vim的插件管理工具 配置好后执行: :PluginInstall 安装vim-go需要的二进制文件 You will also need to ins...阅读全文

博文 2020-02-16 10:32:38 byte

GO上传图片到图床的问题~

最近在捣鼓弄个程序自动上传图到sm.ms图床。 因为是零基础的新手,所以有难题被卡住了。 ![QQ截图20171221225508.jpg](https://static.studygolang.com/171221/c128ff752bc5c6451ae4110a01ba33a5.jpg) Request Payload就是上传的文件。 自己查资料看的有部分看不懂,有的自己实验了也不行,所以只能来这里请教一下各位了~~!! 如果方便的话,可以码一下代码贴上来谢谢,或者指点一下~十分感...阅读全文

Referrer Policy 介绍

当用户在浏览器上点击一个链接时,会产生一个 HTTP 请求,用于获取新的页面内容,而在该请求的报头中,会包含一个 Referrer,用以指定该请求是从哪个页面跳转页来的,常被用于分析用户来源等信息。但是也有成为用户的一个不安全因素,比如有些网站直接将 sessionid 或是 token 放在地址栏里传递的,会原样不动地当作 Referrer 报头的内容传递给第三方网站。所以就有了 Referrer Policy,用于过滤 Referrer 报头内容,目前是一个候选标准,不过已经有部分浏览器支持该标准。具体的可查看这里。指令值目前包含了以下几种指令值:enum ReferrerPolicy { "", "no-referrer", "no-referrer-when-downgrade", ...阅读全文

博文 2017-08-21 05:23:06 xnotepad

Windows下Sublime Text 安装ctags插件支持golang

ctags简介 ctags可以对编程语言的源文件结构构建索引,实现快速的跳转,包括对象、变量、方法等。 Windows下安装ctags 下载安装包 解压安装包,将ctags.exe文件拷贝到C:/Windows/System32目录下 在cmd下执行命令ctags --version验证安装是否成功 Sublime Text安装ctags插件 在窗口选择Preferences -> Package Control -> Install Package 在输入框中输入ctags搜索待安装插件,选择插件回车安装 修改配置,在窗口选择Preferences -> Package Settings -> Ctags 将Settings-Default中的内容全部复制到Settings->User中 ...阅读全文

博文 2017-04-12 06:00:40 shmily

Go-Interface

要点 interface关键字用来定义一个接口 Go没有implements、extends等关键字 实现一个接口的方法就是直接定义接口中的方法 要实现多态,就要用指针或&object语法 示例 package main import "fmt" import "math" type Shape interface { area() float64 } type Circle struct { r float64 } func (c *Circle) area() float64 { return math.Pi * c.r * c.r } type Rectangle struct { length, width float64 } func (r *Rectangle) area() f...阅读全文

博文 2016-09-07 04:00:04 u013344915

ETCD探索

ETCD探索 梗概 这篇文章旨在从源码角度分析ETCD MVCC、Lease、Watch的实现,帮助我们更好的使用ETCD。 ETCD是什么? 这是ETCD官网给出的解释,ETCD是一个KV存储。现在有太多的KV存储中间件,我们为什么要选择ETCD呢?原因就是这句话:"distributed", "reliable",ETCD是一个分布式的、可靠的KV存储。相比于Redis,ETDC不够快,但足够安全,可靠。每一个中间件都有自己的特点,我选择ETCD有两个原因: ETCD是GO写的,所以GO用起来很方便。(不用ZK的原因) 扩容方便。 在讨论之前,我们先看下ETCD的目录结构 auth 访问权限 client/clientv3 GO客户端SDK contrib 里面放着raftexample...阅读全文

博文 2020-02-19 17:32:49 HammerMax

2018-12-24 晚间日记

天气:晴 任务清单 调研 pachyderm 指导搭建环境,和用例。 习惯养成类:日更800+字 && writingTime >=1h 100% 习惯养成类:单词 30个,复习优先,你的目的是为了记住单词,而不是看到更多的单词。同理,记住单词也不是目的,而是使用英文阅读理解,沟通交流的手段。所以每个单词至少要熟悉一个例句。--100% 周目标·完成进度 golang 1K 众病之王---癌症治疗的认知升级(总结2000字+) 学有所得 我们的大脑,除了睡着,不会有闲着的时候。即便你想让自己什么都不想,你也做不到,即便你不在想有目标的事情,你也会有其他的念头冒出来。而且很多都是关于你和他人,和世界的关系。----这些只有在闲下来的时候,才会去做。 现实生活中,有些人,在他所在的领域里面,做的...阅读全文

Golang:流程控制

流程控制是每种编程语言走向和执行次序的重要部分 golang中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。 if else(分支结构) if 条件判断基本写法 if 表达式1 { 分支1 } else if 表达式2 { 分支2 } else{ 分支3 } if条件判断的特殊写法 if条件判断可以在if表达式之前添加一个执行语句,再根据变量值进行判断: func main() { if score := 65; score > 90 { fmt.Println("A") } else if score > 75 { fmt.Println("B") } else { fmt.Println("C") } } for...阅读全文

手摸手教你用beego实现留言本之三(实现登录和退出)

> 登录和退出的流程: 1. 输入用户名、密码传到后台 2. 数据库查询结果是否匹配 3. 匹配成功保存 session 跳转首页 4. 退出登录 删除session 这里用到了beego的三个知识点:session | 数据库查询 | 跳转 ### 1. 设置session >首先,我们需要开启 session,在文件 app.conf 中加入 ``` sessionon = true ``` 如果未开启直接访问session可能会报如下错误: ``` goblog:runtime error: invalid memory address or nil pointer dereference ``` #### 1.1 设置session 这里提到的变量 `c` 即是控制器中传入的指针对象...阅读全文

博文 2019-01-15 11:16:01 wujiangwei

96元购买一年景安快云服务器

96元购买一年景安快云服务器 原价960元一年 刚好 阿里云的活动结束了 景安就接上来了 需要的朋友们可以参加 新用户才可以96元购买 1核CPU 2G内存 1M宽带 50G SSD硬盘服务器 活动链接:https://www.zzidc.com:443/main/huodong/onCloudBuy?groomid=eTGdimieXwM%3D 活动对象是个人实名认证的新用户 新用户:是指账户内没有任何有效订单的个人用...阅读全文

golang 实现线程安全的跳转表 (skip list)

这个数据结构在本科的数据结构课是没有教过的,我知道这个东西是在,学习redis内部原理的时候接触的,redis 中的 sorted set 中就是使用了这种数据结构。如果你要学习下 redis的有序集合的原理,那么一定要看 skip list这种数据结构。 基础 网上有很多大佬都写了很多不错的博客去介绍 skip list,我就直接给出链接先去学习下吧: 跳表 skiplist 跳跃表 原始论文 跳表SkipList 跳表──没听过但很犀利的数据结构 跳表(skiplist)的理解 只是列举了部分我觉得比较好的。如果你看到了更牛逼的文章可以在下面评论出来。 如果你看完了还是不理解可以找下别的文章再理解下。 go 代码实现 跳转表结构 直接看原始论文中的配图吧。 skip_list 都会保存一...阅读全文

博文 2019-08-05 20:32:41 _AlphaBaby_

go语言-控制并发数

在Go语言自带的godoc程序实现中有一个vfs的包对应虚拟的文件系统,在vfs包下面有一个gatefs的子包,gatefs子包的目的就是为了控制访问该虚拟文件系统的最大并发数。gatefs包的应用很简单:import ( "golang.org/x/tools/godoc/vfs" "golang.org/x/tools/godoc/gatefs" ) func main() { fs := gatefs.New(vfs.OS("/path"), make(chan bool), 8) }其中vfs.OS("/path")基于本地文件系统构造一个虚拟的文件系统,单后gatefs.New基于现有的虚拟文件系统构造一个并发受控的虚拟文件系统。通过带缓存通道的发送和接受规则来实现最大并发阻塞:v...阅读全文

博文 2020-03-18 17:33:51 guoguocto

go 语言跳转地址

package main import ( "log" "net/http" ) func addUser(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "https://blog.csdn.net/qq_37838223", http.StatusFound) } func main() { http.HandleFunc("/", addUser) err := http.ListenAndServe(":80", nil) if err != nil { log.Fatal("ListenAndServe: ", err.Error()) } }最后 set GOOS=linux,在linux上运行,wind...阅读全文

博文 2018-12-14 10:31:03 qq_37838223

Go语言基础:if,goto,for,switch

Go的if,for,switch跟C的区别 有过C基础的人,都知道if、for、switch的条件语言都是有括号的。基本格式: if(条件判断语言) {} for(语句1;语句2;语句3) {} switch(语句){} 在go中,这些语法规则跟C还是有差别,概括为一句话就是去掉了括号。语法规则如下: if 语句 {} for 语句1;语句2;语句3 {}//跟C一样,这三个语句可以省掉任何一个语句 switch 语句 {} 区别其实很简单。正由于没有了括号,导致他们与C有了更多的功能。 if if 还有一个强大的地方就是条件判断语句里面允许声明一个变量,这个变量的作用域只能在该条件逻辑块内,其他地方就不起作用了。 if x:=getXdata(); x>10 { //x的作用域只在这个括号...阅读全文

博文 2016-09-07 00:00:00 uudou

缺陷管理之测试新手

初入测试,基本上算是在一个接一个测试任务的境况下度过的。 某一天任务比较轻松,迅速交付之后便些前辈们编好的用例学习学习,等待着下一个项目的发布。就在这难得的闲暇时间,部门的同事却发现了一个在平时根本想不到的BUG,这个情况迅速引起了大伙儿的好奇,纷纷 围观过去。 简单地形容一下这个BUG吧: 此BUG主要是在某种情况下,点击界面按钮并不会出现相应的跳转,而会直接回到登录页面,且无论你如何进行操作,用户不会被注销下线,但由于这个问题是需要特定的操作才会出现的,所以当同事进行复现沟通时,难以正常体现BUG的存在,导致开发不认缺陷,至此小小撕逼,回来当然和大伙吐槽。 既然复现困难(TestBird教你轻松复现BUG场景),同事只有放弃,但在私下讨论时,这点依然是我们比较热衷...阅读全文

go restful源码剖析-1

restful hello world 首次浏览下go-restful的工程结构,从工程组织上面来看,工程包括两个部分:source文件及example文件,其中source文件组成了工程的主体,包括restful主要功能接口的实现及单元测试文件(以test.go结尾命名的文件),另外example目录中主要包括了接口的使用案例。 第一次阅读go-restful源码,以example目录下的restful-hello-world.go作为入坑样例,来跟踪了解下restful如何组织封装webservice及route的维护。 restful-hello-world.go代码如下: func main() { ws := new(restful.WebService) ws.Route(ws....阅读全文

博文 2018-08-29 23:35:22 tcuze

【Go语言】【9】GO语言的循环语句

一、循环语句 循环语句即for语句,您可能说:“不对,它不仅仅是for语句,还有while或者do-while”,真的很遗憾,GO语言真的只有for,它认为提供一种就可以了,提供多了怕给程序员带来麻烦 :)下面我们使用for循环计算1+2+3+4+……+100的和,和其它语言一样,我们使用循环100次的办法:定义一个变量,让它从1开始循环100次,每次都判断它是否小于101,若是变量就加1代码如下:// 声明变量sum并初始化为0sum := 0// 定义变量i,循环100次,每次判断是否小于101for i:= 1; i< 101; i++{ // 累加总和 sum += i}// 打印结果fmt.Println("sum=", sum)结果如下图:1、习惯的养成若您一直使用C/C++/J...阅读全文

博文 2017-02-09 15:59:18 qingkechina

golang内核系列--深入理解plan9汇编&实践

对于写业务的同学来说,学习汇编可能没必要,仅仅关注业务逻辑即可。但是当你要深入去优化代码结构、系统架构,就不得不去深入了解golang这门语言,去了解golang内核实现:比如goroutine调度、io调度、map实现、string实现。当然,golang内核有go实现,也有汇编实现。为了做更深入的优化,我们需要了解plan9汇编,有时候不得不去写汇编,甚至根据特定汇编指令集来做优化。(主要以x86/64架构)比如我们去看strings.Index实现,其中有一段代码是汇编所写:TEXT ·IndexString(SB),NOSPLIT,$0-40 MOVQ a_base+0(FP), DI MOVQ a_len+8(FP), DX MOVQ b_base+16(FP), BP MOVQ ...阅读全文

博文 2019-06-09 11:00:04 buptbill220

golang源码学习之defer

数据结构 //runtime/runtime2.go type _defer struct { siz int32 //参数大小 started bool // defer是否被调用过的标识 sp uintptr // sp at time of defer pc uintptr fn *funcval // defer 后面跟的function _panic *_panic // panic that is running defer link *_defer // 链表结构 } 每一个defer关键字在编译阶段都会转换成deferproc,编译器会在函数return之前插入deferreturn。 deferproc //runtime/panic.go // 创建一个defer, fn...阅读全文

博文 2019-07-22 19:32:41 ihornet

ubuntu16.04、nginx、https、golang

下面的这个配置,最后验证是可以的。只是没有跳转 server { listen 80; listen 443 ssl; #ssl on; server_name hc-explorer.h.cash; ssl_certificate /etc/nginx/cert/7d97acd273b4a22.crt; ssl_certificate_key /etc/nginx/cert/key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_p...阅读全文

博文 2018-07-31 16:34:53 豆瓣奶茶

beego:从入门到放弃

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/github_37320188/article/details/79107380 使用beego创建新项目beego 的项目基本都是通过 bee 命令来创建的,所以在创建项目之前确保你已经安装了 bee 工具和 beego。如果你还没有安装,那么请查阅 beego 的安装 和 bee 工具的安装。现在一切就绪我们就可以开始创建项目了,打开终端,进入 $GOPATH/src 所在的目录:创建一个项目名为20180118_loongc_beego的基于beego 的新项目,执行如下命令:bee new 20180118_loongc_beego依次执行如下命令:进入目录,运行该项目,在localho...阅读全文

博文 2019-03-16 11:31:04 github_37320188

golang:goroutinue原理笔记

G M P模型 G —— goroutinue对象,经go语句创建 M —— 系统线程,和P关联后运行G,上限10000 P —— 调度器,和M关联后运行G,数量由 runtime.MAXGOPROCS 设置,默认为CPU核数,上限256 此外还有一个系统调度器(runtime.sched),负责维护一些全局队列。M的状态 自旋中:M正在从运行队列获取G, 这时候M会拥有一个P 执行中:M正在执行go代码, 这时候M会拥有一个P 挂起中:M正在执行阻塞的syscall, 这时M并不拥有P 休眠中:M发现无待运行的G时会进入休眠,并添加到空闲M链表中, 这时M并不拥有PP的状态 Pidel:当前P未和任何M关联 Prunning:当前P已经和某个M关联,M在执行某个G Psyscall:当前P...阅读全文

博文 2020-03-08 12:32:44 RaymondW

Go语言编程(七)之流程控制

程序设计语言的流程控制语句,用于设定计算执行的次序,建立程序的逻辑结构。可以说,流程控制语句是整个程序的骨架。 从根本上说,流程控制只是为了控制程序语句的执行顺序,一般需要与各种条件配合,因此,在各种流程中,会加入条件判断语句。流程控制语句一般起以下3个作用: 选择,即根据条件跳转到不同的执行序列; 循环,即根据条件反复执行某个序列,当然每一次循环执行的输入输出可能会发生变化; 跳转,即根据条件返回到某执行序列。 Go语言支持如下的几种流程控制语句: 条件语句,对应的关键字为if、else和else if; 选择语句,对应的关键字为switch、case和select; 循环语句,对应的关键字为for和range; 跳转语句,对应的关键字为goto。 Go语言还添加了如下关键字:break、...阅读全文

博文 2016-10-17 15:00:05 JoeySheng

5.流程控制

Go语言基础之流程控制 Golang 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。 Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。 if else(分支结构) if条件判断基本写法 Go语言中if条件判断的格式如下: if 表达式1 { 分支1 } else if 表达式2 { 分支2 } else{ 分支3 } 当表达式1的结果为true时,执行分支1,否则判断表达式2,如果满足则执行分支2,都不满足时,则执行分支3。 if判断中的else if和else都是可选的,可以根据实际需要进行选择。 Go语言规定与if匹配的左括号{必须与if和表达式放在同一行,{...阅读全文

博文 2020-04-05 13:32:48 雪上霜

HTTPs SSL请求

~~~ 我用openssl生成了个临时证书 测试可用,就是有个问题 GO有没有提供这样的函数 自动http请求跳转https的函数呢 因为访问如 www.xx.com 以下代码会出错打不开, 必须手工输入 https://www.xx.com才可以 这样很不方便 还有谁有免费的SSL证书推荐额 想找个测试下 目前的显示不安全的 临时测试的没办法 func main() { http.HandleFunc("/", test123) err := http.ListenAndServeTLS(":81", "cert.pem", "key.pem", nil) if err != nil { panic(err) } } func test1...阅读全文

Go语言基础:if,goto,for,switch

Go的if,for,switch跟C的区别 有过C基础的人,都知道if、for、switch的条件语言都是有括号的。基本格式: if(条件判断语言) {} for(语句1;语句2;语句3) {} switch(语句){} 在go中,这些语法规则跟C还是有差别,概括为一句话就是去掉了括号。语法规则如下: if 语句 {} for 语句1;语句2;语句3 {}//跟C一样,这三个语句可以省掉任何一个语句 switch 语句 {} 区别其实很简单。正由于没有了括号,导致他们与C有了更多的功能。 if if 还有一个强大的地方就是条件判断语句里面允许声明一个变量,这个变量的作用域只能在该条件逻辑块内,其他地方就不起作用了。 if x:=getXdata(); x>10 { //x的作用域只在这个括号...阅读全文

博文 2016-10-04 03:00:00 uudou

Go语言基础05-Go流程控制

文章转载请注明出处www.leexide.com希望每一位寻求转载的朋友都能够按照要求进行,鼓励原创,尊重原创。 微信公众号:DevOps运维运营之家 QQ号码:1045884038 E-mail:leexide@126.com 如有问题或建议,请关注微信公众号 1 概述 流程控制是顺序编程中必不可少的一部分,它是整个编程基础的重要一环。在顺序编程的流程控制部分,Go语言和其他主流语言有一些差别,主要体现在Go语言没有do-while语句,因此for语句拥有更广泛的含义与用途。另一方面switch语句也有一些扩展,例如支持类型判断和初始化子语句等。 除了这些常见的流程控制语法的关键字,Go语言还有三个特殊的关键字,分别是: defer:用于捕获异常和资源回收等工作; select:用于多分支...阅读全文

博文 2019-03-24 20:35:45 Leexide