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

Go中结构体的使用

结构体写了一小段代码,居然这么坑,看来前面的基础还是没有打好啊。 开始写的结构体代码是这样的,结果就是出不来,报如下错误: missing type in composite literal 代码如下: package main import ( "encoding/json" "fmt" ) type Person struct { Username string Age int Friend []string Addr string } func TestJson() { p1 := &Person{ "zhangsan", 25, {"lisi", "wangwu"}, "Jinlin China", } p, err := json.Marshal(p1) if err != nil...阅读全文

博文 2015-03-29 23:00:01 lovederh

关于go接口的一些说明

什么是接口 接口是golang最重要的特性之一,在Go中,接口interface其实和其他语言的接口意思没什么区别。interface理解其为一种类型的规范或者约定。一种类型是不是“实现”了一个接口呢?就看这种类型是不是实现了接口中定义的所有方法。接⼝是一个或多个方法签名的集合,任何非接口类型只要拥有与之对应的全部方法实现 (包括相同的名称、参数列表以及返回值。),就表示它"实现" 了该接口,无需显式在该类型上添加接口声明。此种方式又被称作Duck Type。 接口的实例化 接口是可被实例化的类型,而不仅仅是语言上的约束规范。当我们创建接口变量时,将会为其分配内存,并将赋值给它的对象拷贝存储。将对象赋值给接口变量时,会发生值拷贝行为。没错,接口内部存储的是指向这个复制品的指针。而且我们无法修...阅读全文

博文 2014-10-04 19:26:23 壬癸甲乙

golang 应用的部署相关技术

nohup命令 在 linux 下面部署,我们可以利用 nohup 命令,把应用部署在后端,如下所示: nohup ./yourapp & 这样你的应用就跑在了 Linux 系统的守护进程 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。 一般如何如下两种方式使用它: nohup command 或者 nohup command & 这之间的差别是带&的命令行,即使terminal(终端)关闭,或者电脑死机程序依然运行(前提是你把程序递交到服务器上); 使用它需要注意的问题是:它把标准输出(STDOUT)和标准错误(STDE...阅读全文

博文 2014-10-04 19:26:13 ghj1976

go interface的一点心得

先看golanger.com关于interface的说明 *Interfaces in Go provide a way to specify the behavior of an object: if something can do this, then it can be used here* 翻译下来就是: interfaces 用来指定一个object的的行为,如果该object能够执行该行为,这个接口就可以替代这个对象。 文档中举了一个例子: fmt包中的Fprintf方法 `func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)...阅读全文

Go的依赖管理

最近使用Go语言写了一个线上Session复制工具。对Go工程的依赖管理感到很是不满意。不满意的原因有以下几点。 过度依赖仓库,甚至将仓库的网址作为命名空间。 不能支持指定版本或者tag。 根据对Go的依赖管理的观察,可以观察到以下几点。 在执行go get的时候会扫描import的部分 将依赖拉取到src目录下面,并进行前一个步骤 当所有的依赖都拉取完成后,直接使用广度优先搜索算法搜索依赖图并进行编译。 那么解决方法就非常简单了。 设计一个配置文件,用来指定每个项目的branch或tag 将所有项目从仓库牵出到指定的brnach或tag上 扫描所有文件的import部分,构建编译的依赖关系图 广度优先遍历依赖关系图,进行编译 玩Go不久,不知道是否有更高级的方案或者已有的方案解决Go工程...阅读全文

博文 2014-11-22 17:00:01 David_Alpha_Fox

[翻译] effective go 之 Control structures

Control structures The control structures of Go are related to those of C but differ in important ways. There is no do or while loop, only a slightly generalized for; switch is more flexible; if and switch accept an optional initialization statement like that of for; and there are new control structures including a type switch and a multiway commun...阅读全文

博文 2014-10-04 19:26:21 pengfei_xue

热议ING:大学生玩转云计算的一百种方法

摘要:大学生+想象力+技术,你猜,这三者结合的力量有多大?答案正在不断更新ING ![22](https://img.alicdn.com/tfs/TB18ZKhQFXXXXX1XXXXXXXXXXXX-735-397.jpg) 借助科技普惠的力量,阿里云以近乎免费的价格,于2015年推出“云翼计划”,旨在降低大学生接触云计算领域的成本,培育出更多云计算领域的人才。 2017年,阿里云的“云翼计划”再次升级,将原云服务器配置(1核1G)升级到1核2G,优惠价格仍然保持9.9元/月不变(原价:108元/月),且续费同价。 ![33](https://img.alicdn.com/tfs/TB1gqScQFXXXXbTXXXXXXXXXXXX-790-318.jpg)...阅读全文

我为什么选择go语言

这里,我并不打算引起语言争论的口水仗,我并不是什么大牛,对语言的造诣也不深,只是想通过自己实际的经历,来说说为什么我在项目中选择go。 其他语言的经历 C++ 在接触go之前,我已经有多年的c++开发经验。主要用在游戏服务端引擎开发以及P2P上面,那可是一段痛并快乐的时期,以至于我看到任何的程序钉子问题都觉得可以用c++这把锤子给敲定。但是对于互联网项目开发来说,除非你的团队整体的c++技术水平nb,并且有很强的代码规范,不然真可能是一场灾难,更别说我们现有团队几乎没其他人会这玩意了。 本来,我打算在现有项目中的推送系统中使用c++,并用业余时间写好了一个网络底层库libtnet,但后来还是决定打住,因为没有人能够协助我开发。令我比较欣慰的是,libtnet有一个游戏公司在使用,现处于内部测...阅读全文

博文 2014-10-04 19:26:13 siddontang

以io.Writer为例看go中的interface{}

阅读该文后的一些理解 1 io.Writer接口 io.Writer接口有如下定义 package io type Writer interface { Write(p []byte) (n int, err error) } //根据go中接口的特点,所有实现了Write方法的类型,我们都说它实现了io.Writer接口。 2 somepkg.abc类型实现了io.Writer接口 package somepkg type Abc struct { id int } func (a *Abc) Write(p []byte) (n int, err error){ //writing.... return 1,nil //模拟返回,n表示写了几个字节,err表示是否有错误 } //根据go...阅读全文

博文 2014-10-04 19:26:27 waynehu

离线版的Golang官方文档

由于众所周知的原因,Golang不支持国内使用。当查文档或者升级版本的时候就会比较苦恼。有的时候实在是没辙,就用必应的缓存页看文档,下载升级包也是各种想辙。每次都很麻烦。 为了我自己能方便点用,我把Golang官方文档的页面都下载下来放在我的VPS上面。VPS也不是每天都能连得上,趁昨天有机会赶紧放上去,然后用CDN加速。链接: http://cyeam.com/go/pkg/index.html 这让我想起前几天看到的一条微博。说古巴的一个网站,架设在了万恶的美帝,万恶的美帝不让他们用这个网站。古巴的屌丝们都是把这个网站整站下载到U盘里面偷出美帝进行浏览。异曲同工,哈哈哈。 下载整站用了命令: wget -r -p -np -k http://URL -r 递归下载 -p 下载html里面...阅读全文

博文 2017-02-09 12:25:37 Bryce

MySQL金融版发布会:4个男人能擦出的火花

摘要: 2017年8月10日,云栖社区将迎来一场特殊的直播——阿里云数据库MySQL金融版线上发布会。 届时,我们不仅请到了阿里云金融业务部总监九河、阿里云数据库掌门人褚霸以及阿里云数据库产品专家乙休来一起宣布这个好消息,同时还邀请到一位在金融界绝对是重磅级人物的神秘嘉宾,一起来聊一聊产品发布背后的故事。 2017年8月10日下午14:00,云栖社区将迎来一场特殊的直播——阿里云数据库MySQL金融版线上发布会。 届时,我们不仅请到了阿里云金融业务部总监九河、阿里云数据库掌门人褚霸以及阿里云数据库产品专家乙休来一起宣布这个好消息,同时还邀请到一位在金融界绝对是重磅级人物的神秘嘉宾,一起来聊一聊产品发布背后的故事! 那么,MySQL金融版又是一个什么样的数据库呢?顾名思义,它就是一款...阅读全文

golang学习实例-猜拳小游戏

学了一段golang,觉得应该实践一下,写了这个猜拳小游戏,顺带着学习下go testing。 主程序源码: package main import ( "bufio" // 输入输出 "fmt" "math" "math/rand" "os" "strconv" "time" ) //rock, paper, scissors const ( rock int = 1 scissors int = 2 paper int = 3 rockName string = "石头" scissorsName string = "剪刀" paperName string = "布" win int = 1 lose int = -1 draw int = 0 ) // 拳的结构 type Finge...阅读全文

博文 2015-06-17 20:03:59 hnxxwyq

我为什么选择go语言

这里,我并不打算引起语言争论的口水仗,我并不是什么大牛,对语言的造诣也不深,只是想通过自己实际的经历,来说说为什么我在项目中选择go。 其他语言的经历 C++ 在接触go之前,我已经有多年的c++开发经验。主要用在游戏服务端引擎开发以及P2P上面,那可是一段痛并快乐的时期,以至于我看到任何的程序钉子问题都觉得可以用c++这把锤子给敲定。但是对于互联网项目开发来说,除非你的团队整体的c++技术水平nb,并且有很强的代码规范,不然真可能是一场灾难,更别说我们现有团队几乎没其他人会这玩意了。 本来,我打算在现有项目中的推送系统中使用c++,并用业余时间写好了一个网络底层库libtnet,但后来还是决定打住,因为没有人能够协助我开发。令我比较欣慰的是,libtnet有一个游戏公司在使用,现处于内部测...阅读全文

博文 2014-10-04 19:26:00 siddontang

用 golang 实现区块链系列四 | 交易 1

介绍 交易是比特币的核心,而且区块链的唯一目标就是安全可靠地存储交易信息,而且没人可以在它们被创建之后修改它们。今天我们要开始实现交易。但是由于这是一个比较大的话题,因此我会分成两个部分:这一部分,我们会实现交易的通用机制,在第二部分会继续完成细节部分。 由于代码变化会比较大,所以没有必要全部都解释一下,你可以在这里找到所有的变化。 没有勺子 如果你曾经做个 web 应用,为了实现支付系统,可能会在数据库里创造这么几个表: accounts 和 transactions。账户表会存储用户信息,包括个人信息和余额,另一个交易标会存商品中关于钱从哪个账户转给另一个账户的信息。比特币中,支付完完全全是另一种方式。这里: 没有账户 没有余额 没有地址 没有币 没有发送者和接受者 因为区块链是一个公共...阅读全文

博文 2018-11-19 20:34:50 小马哥_Magical

Go语言基础(三)—— 面向对象编程

前言: 本专题用于记录自己(647)在Go语言方向的学习和积累。 系列内容比较偏基础,推荐给想要入门Go语言开发者们阅读。 目录如下: Go语言基础(一)—— 简介、环境配置、HelloWorld Go语言基础(二)—— 基本常用语法 Go语言基础(三)—— 面向对象编程 Go语言基础(四)—— 优质的容错处理 Go语言基础(五)—— 并发编程 Go语言基础(六)—— 测试、反射、Unsafe Go语言基础(七)—— 架构 & 常见任务 Go语言基础(八)—— 性能调优 本篇将介绍如下内容: 1.Go是面向对象的语言么? 2.结构体与行为(方法)的定义 3.接口(协议) 我们先来看个引子:“Is Go an object-oriented language?” 在Go的官方论坛里有世界各地的...阅读全文

博文 2020-02-03 10:34:16 奇舞647

Linux服务器安全策略实战免费送给运维工程师

课程介绍 安全是IT行业一个老生常谈的话题了,从近几年层出不穷的安全事件中折射出了很多安全问题,处理好信息安全问题已变得刻不容缓。 因此做为运维人员,就必须了解一些安全运维准则,同时,要保护自己所负责的业务。 本课程主要讲解Linux服务器的安全策略。 课程目标 • 掌握Linux服务器安全策略 适合人群 • 运维工程师 课时列表 • 课时1:Linux服务器后门入侵检测工具和使用方法 • 课时2:Linux服务器遭受网络攻击后的处理思路和措施 开始学习http://click.aliyun.com/m/27897...阅读全文

教你如何帮助前端同学快速生成API接口代码

最近我们团队开源的后端微服务框架go-zero增长势头比较迅猛,这篇文章我讲讲go-zero对前端团队的作用,并通过一个示例来给大家演示我们是怎么做的,希望能给后端的同学也可以帮助前端同学提高开发效率👏首先,我们来看看正常怎么实现api接口:1,后端给出(或经过协商给出)api定义文档2,前端多端开发编写各自的api请求代码3,单元测试,如果有的话4,前后端都完成后,联调接口然后,给大家讲讲我们团队是怎么做的:1,后端(或经过协商)通过.api文件定义出接口2,前端多端开发通过命令一键生成各自的接口实现由于接口代码是统一生成的,所以无需单独做接口联调下面我通过一个例子来给大家展示完整的过程:从这里下载goctl可执行文件,并确保命令行可运行goctl命令:https://github.com...阅读全文

博文 2020-10-19 17:32:40 kevinwan

有随机指针的单链表的复制

一个单链表,每一个节点除了会指向下一个节点之外,还有一个随机指针,随机的指向该链表本节点之外的另一个节点比如 1------>2------>3------>4------nil然后随机指针1------>32------>43------>24------>1复制逻辑第一步 先在原始链表每一个节点后面创建一个取值跟其一样的节点让链表变成这样1--->1'--->2--->2'--->3--->3'--->4--->4'---nil第二步 在完成了第一步之后分析发现比如想让1‘的随机指向的是3’(因为1随机指向3)那么在新链表中,1是node就有下面的公式node(1).next(1‘).rand = node(1).rand(3).next(3') 利用这个公式就能让复制出的1‘的rand...阅读全文

博文 2020-10-17 08:32:35 润雨冰雪