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

Godep的基本使用

关于Godep 发现好多golang项目都使用到godep作为包管理的工具,像比较大型的项目,比如kubernetes这种,都是使用的是godep来进行依赖管理操作的了,看了一下有点像maven的感觉,这里记录一下基本的操作。 首先是安装 由于网络的问题,goget的时候有一个包会找不到,网上有好多替代的解决方案,比如说这个 基本的使用 go save 比如说建立了一个基本的项目,就拿beego的示例项目来说。这里又一点要注意,没有使用版本控制的时候,go save是不成功的,会报类似如下的错误: godep: error while inspecting "/Users/Hessen/goworkspace/src/testBee/bapi": directory "/Users/Hess...阅读全文

golang 组合和接口

一,组合 golang 中一切 皆是类型 这个和 面向对象的 概念有点像 ,但是又不太像,和javascript倒是有些相似之处 那么如何实现 像 Java中的 继承呢,golang使用的是组合 请看代码 和 运行输出 说明一切 type father struct { name string sex int } type sun struct { father name string } func main() { s:=sun{father:father{name:"father",sex:11},name:"sun"} fmt.Println(s) fmt.Println("name",s.name) fmt.Println("name",s.father.name) fmt.Prin...阅读全文

博文 2016-04-11 14:00:03 lzp2011150309

Golang http.RoundTripper 笔记

RoundTripper is an interface representing the ability to execute a single HTTP transaction, obtaining the Response for a given Request. 对于http客户端,可以使用不同的实现了 RoundTripper 接口的Transport实现来配置它的行为 RoundTripper 有点像 http.Client 的中间件 接口定义 type RoundTripper interface { RoundTrip(*Request) (*Response, error) } 需要实现RoundTrip函数 type SomeClient struct {} func (...阅读全文

博文 2018-08-26 17:34:52 lidashuang

golang中的type转换

大家都知道,golang中可以这样定义一个类型: type PowerString string 这种不是面向对象中的继承,但有点像,因为PowerString能得到string的属性方法等。 我们给PowerString写个方法: func (ps PowerString) Print() { fmt.Println(ps) } 那怎么新建一个PowerString呢? 不需要特意写一个new方法,直接把一个string转换成PowerString就可以了: ps := PowerString(“Hi, you!”) ps.Print() 当然你也能新建一个PowerString转换过来的string: str := string(ps...阅读全文

博文 2015-06-17 20:03:54 u011649436

[广州]招聘 web 开发工程师 2015

要求: 1、二年以上Web开发经验; 2、熟悉 JavaScript/CSS/HTML; 3、熟悉bootstrap,jquery等; 4、熟悉go语言和beego框架,或者有php、python、node.js等脚本语言的开发经验; 5、有视频播放、流媒体类网站研发经优先; 6、希望你前端与后端都会,但侧重于后端。 7、有web自动化测试优先。 工作内容:制作教育社区视频类网站,有点像现在比较流行的mooc,一个全新的项目产品。你可以使用最新的技术,不用维护旧有的系统。尽情发挥的创造力。 本团队的理念是:8小时内请把你的技能发挥到极点。8小时之外做你所喜欢的。 工作地点:广州天河区东圃 有意者请发简历到: jianshiyin@donvi...阅读全文

golang-mongo或查询

遇到一个或关系查询,度娘了下,mongo语句很容易实现:db.RechargeList.find({"IsRead":{$gt:0},"$or":[{"Account":"lyp"},{"DoneeObjId":"59ddcfb45208dc2c0cfb6ff3"}]}),但是在golang里还是有点小麻烦: bson.M{"IsRead": bson.M{"$gt": 0}, "$or": []bson.M{bson.M{"Account": this.Account},bson.M{"DoneeObjId": this.ObjID.Hex()}}...阅读全文

博文 2017-11-25 16:00:01 ChengShuKaiShi

Go语言之“类”篇(一)

自本同步公众号:“灰子学技术”原文链接:https://mp.weixin.qq.com/s/uiP6tAoLRj13RZRQMNOkKA准确来说,Go语言没有类的概念,不过却有struct和interface,这篇文章主要来讲struct,因为笔者觉得这个和C++中的Class有些相似。在C++中Class有几个东西,一定要谈,它们分别是:public/protected/private属性,构造函数和析构函数,继承,函数重载。一、公私有属性1.C++中的公私有属性,一定要有关键字public, protected, private来修饰。并且这些属性的作用范围是针对类来说的,不是针对类的实例来说的,是编译阶段的概念。详细介绍参见我的另外一篇文章:private在C++中的范围2.Go中也...阅读全文

博文 2019-09-08 16:54:20 ZhDavis

Golang接口interface的使用

关键字interface 如果一个结构体绑定的方法包含接口的所有方法,即认为实现了该接口 将对象赋值给接口时,会发生拷贝,而接口的存储是指向这个复制的指针,复制的无法修改原来状态,也无法获取指针 type CallBack interface{ getName() string } type User struct{ name string } func (user User) getName()string{ return user.name } user:=User{} f.println(user.getName()) 上面声明了一个CallBack,结构体User绑定了一个getName的方法,跟CallBack接口所声明的接口名称一样,而且实现了CallBack接口的所有方法(他现...阅读全文

博文 2017-10-10 06:04:56 Link_Biao

关于Golang信号channel的长度问题

首先来看一下一个简单的信号处理的例子 package main import ( "fmt" "os" "os/signal" ) func main () { c := make ( chan os . Signal , 1 ) # watch this signal . Notify ( c , os . Interrupt ) s := <- c fmt . Println ( "Got signal:" , s ) } 首先创建一个容纳信号对象的channel,channel的长度为1。 然后使用Notify注册信号处理,将Interrupt信号和channel关联起来。 进程挂在那里休眠,直到收到一个ctrl+c触发了Interrupt信号,channel里就会被塞进一条信号对象,...阅读全文

博文 2018-02-27 15:04:42 钱文品

初看go 编程语言有感

1 从组织形式上看, package , var, func 这点东西有点像python, 包括len函数。 但毕竟有类型,是个优点 2我基本上看不到c语言的影子了,c的那种严密性但只提供最底层api的风格,已经荡然无存了。 3 好多方面也借鉴了java,而非c++, 比如字符串方面。比如命名规范。 4不借助任何第三方库,就可以起http服务。确实很方便。 但不知道生产环境是否竟的起考验。毕竟做到语言里面的东西,不应该频繁改变吧。而tomcat已经变了多少版本了...阅读全文

求职者——你应该了解区块链的地方性政策

忙了一天,有点累了,打开手机微信一看,有陌生人加我好友,备注是:现在还在招人吗?本人前一线互联网公司架构师。我随即通过了好友申请,对方马上发来信息:从某某网站看到你的招聘帖子,很感兴趣,想和你聊一聊。你好!怎么称呼?我说道。姓“C”,老兵,70后。最近刚读完比特币项目代码,对比特币研究颇多。与这位老兵简单沟通中,感觉到他很想进入这个行业,而且对业内的一些公司也都比较了解,所以我让他准备简历,看看能否为他推荐合适的岗位,助他一臂之力,让他顺利进入这个充满机遇和挑战的行业。70后的老兵,对区块链行业也如此有热情,这其实让我挺惊讶的。并不是否认老兵,而是觉得他在这个年纪能够有这种进入新行业的勇气,我很是佩服。之前接触过很多朋友,别说是70后了,很多80后的人都对这个行业持谨慎态度,觉得风险太大,怕...阅读全文

博文 2018-09-01 22:37:42 kelasong

interface搞不懂。。

自己学习的,下面代码m转到p出错了,m2却可以。。这语言有点难 package main import "fmt" type People interface { say() } type Men struct { name string } func (men *Men) say() { fmt.Println("mem say hi:", men.name); } func main() { m := Men{"mike"} m.say() m2 := new(Men) m2.name = "new men" var p People p = m2 p = m //error cannot use m...阅读全文

Go的赋值

想了想,介绍go的类型似乎写不出什么花样来,还是试着从赋值来切入介绍一下go的类型。 go有很多C的影子,我们知道C是没有引用的(引用是C++才具备的,引用的底层实现也是指针),不管是赋值还是在调用函数参数传递的时候都是传值的 go也是传值。 所以像下面的代码 package main import( "fmt" ) func main(){ var arr1=[4]int{1,2,3,4} var arr2=arr1 arr2[3]=6 fmt.Println(arr1) } 输出的是1,2,3,4 而不是1,2,3,6 在上面的代码中,如果想让输出变成1,2,3,4的话,只需要将赋值语句改成 var arr2=&arr1 即可 不过在下面两个复合类型中,有些意外,分别是: 数组切片 字典...阅读全文

博文 2016-03-22 17:00:00 u011408355

golang 接力棒玩法 小例子

package main import ( "fmt" "runtime" ) /* runtime.Gosched() 可以当做接力赛来处理 场景:学校接力赛,一共跑两圈。A B学生一人一圈。半圈一换 go echo("next program")比赛开始了 遇到 runtime.Gosched() A学生跑完了半圈。先歇会有点累,棒子给 B学生 echo("prev program") B学生开跑。 runtime.Gosched() 上次的传递还没完。继续往下跑 fmt.Println(s) 跑完了。给A学生让他跑。 完成后 继续 执行 (比赛开始了) 再次 进行推 遇到 runtime.Gosched() A学生跑完了。先歇会有点累,棒子给 B学生 echo("prev progra...阅读全文

博文 2016-10-31 05:00:04 liangguangchuan

兄弟连区块链培训分享Go语言golang 组合和接口

作为一种底层技术,区块链技术由最初的数字货币到智能合约再到如今各行业场景分布式落定应用的实现,自2008年提出至今的10年间,区块链从最初的理论构想到如今的实际场景应用落地,虽质疑重重但却一直努力前行。尤其是近两年内,区块链对于现有行业逻辑的重新构建让它无可争议地成为下一个发展的风口。 兄弟连教育Go语言+区块链培训学院是由兄弟连教育携手微软区块链领域全球最具价值专家尹成及其带领的清华水木未名教学团队所组成,学习周期为五个半月,内容涵盖Go语言、区块链密码学、分布式编程、共识算法、公链开发、以-太=坊与智能合约与DAPP开发、区块链系统框架开发超级账本与区块链3.0EOS等内容。一,组合golang 中一切 皆是类型这个和 面向对象的 概念有点像 ,但是又不太像,和javascript倒是有...阅读全文

博文 2018-09-04 15:35:18 兄弟连区块链培训

shadowsocks-go源代码分析

shadowsocks 协议 shadowsocks协议包格式为IV向量加Playload,这是加密后的结果. +-------+----------+ | IV | Payload | +-------+----------+ | Fixed | Variable | +-------+----------+ 解密后为 +--------------+---------------------+------------------+----------+ | Address Type | Destination Address | Destination Port | Data | +--------------+---------------------+----------------...阅读全文

博文 2017-07-20 05:04:50 pinecone

Go中如何简洁的使用并发

文章转载自:http://www.waylau.com/golang-clear-concurreny/ 多核处理器越来越普及。有没有一种简单的办法,能够让我们写的软件释放多核的威力?是有的。随着Golang, Erlang, Scala等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象一样,一个好的编程模式有一个极其简洁的内核,还有在此之上丰富的外延。可以解决现实世界中各种各样的问题。本文以GO语言为例,解释其中内核、外延。 并发模式之内核 这种并发模式的内核只需要协程和通道就够了。协程负责执行代码,通道负责在协程之间传递事件。 不久前,并发编程是个非常困难的事。要想编写一个良好的并发程序,我们不得不了解线程,锁,semaphore,barrier甚至CPU更新高...阅读全文

博文 2014-10-12 16:00:01 u011774512

Fourth glance in Go

在Go里面的结构体和方法是很有意思的内容。它即和OO有点像,但又不完全一样。为什么这么说呢?当你把结构体映射为OO里面的类的时候,你给结构体添加方法,你就会发现其实方法与结构体并没有严格意义上的关系。在Go里面,方法是绑定到接受者上的。什么是接受者?一个对象,这个对象可以是任何类型,int,string, struct, interface ...。 func (t *Type) method_name(parameters) return type 但是同名的方法,在同一个类型上只能出现一次。而且该类型必须与方法在同一个包中。 另外一点是内嵌结构体的问题,方法是可以被继承的。也就是说一个结构体被内嵌到另一个结构体中,那么父结构体也就具有了内嵌结构体的方法 >>person.go -----...阅读全文

博文 2015-02-12 03:00:01 moonz-wu

Go语言的小细节--map

Go和Python一样,都有map。在Python里叫做字典,在Go里叫做映射。 与Go相比Python对map的使用相对更加灵活,毕竟在Pyhton的哲学里一切皆对象。 在Go里面创建map有两种方法,一种是先申明在赋值,另一种是在申明的时候直接进行赋值。 在这里Go创建map的方式与C++有点像。 先说第一种:先申明再赋值 ```go var item map[string]string item = make(map[string]string, 1000) ``` 由于是刚开始学习Go语言,对于Go机制的理解还不够深,所以我只能大概用C++的方式来解释一下,说的不对的地方请大神指正。这里的先申明map类型但是系统还没有给item这个变量分配空...阅读全文

go - interface 接口

Interface 1. 概述 Interface 是一组抽象方法(未具体实现的方法/仅包含方法名参数返回值的方法)的集合,有点像但又不同于其他编程语言中的 interface 。 如果实现了 interface 中的所有方法,即该类/对象就实现了该接口 2. interface 类型 格式: type interfaceName interface { //方法列表 } 注: a. interface 可以被任意对象实现,一个类型/对象也可以实现多个 interface b. 方法不能重载,如 eat() eat(s string) 不能同时存在 3. interface 值 声明为 interface 类型的变量,可以存储任何实现了 interface 中所有方法的类型的变量(对象) 注...阅读全文

博文 2015-10-22 22:00:01 chuangrain

静态类型语言和动态类型语言的关于类型的思考

类别:符合条件的对象集。 动态语言不关心对象形成的过程,满足条件即认为是同一类别的对象。 静态语言认为同一类别的对象必须是靠继承得到的类创建的。 静态语言可以靠接口来部分实现上述动态语言的特性,但是一个已经被创建了的对象,即便符合接口定义,但是类因为没有显示声明也无法传入一个以该接口为参数的函数中。因此你要在类那里再加一个实现某接口,于是便有了 class A 继承B 实现接口C{ } 这样的类了。(不过golang的接口则不需要这样的显式声明,我想他们可能意识到了这点) 这里有一个很重要的点就是,你是后发现原来这个对象就属于那个类别的。这个对象可能是后面慢慢形成的。但是当你发现这个事实后再去补上这个类实现了某接口。有点违背当初的设计,因为当初是设计有目的的实现接口的,不是后发现原来符合条件...阅读全文

Go洒给我一地的感觉

为看并行编程发到何样程度,21秒初识Go语言,聊记第一感觉。 语法乱,让我糊涂,甚于Perl,纳闷Go设计的第一宗旨是怎样达到的,自然编译器总感觉语言很清晰。 初看一下还挺有Pascal的味道的,那Professor W似乎又出现在面前。然而读到 var a int = 1 这种句式时,+_+了,美感全无,有点像把定语后置、宾语前置或独立主格结构都搅和在日语倒装里头。 沿袭把可选包变成内置标准一部分的模式,如C年代的lib,然后C++中STL更时髦,而Java功能就是一堆import堆起来的,CPAN让Perl易用……诚然,辅助包让语言变得有生命力。而Go就是从语法上内置了包,啥MPI啊、信号啊,贡献之处就在于简洁了,功劳不亚于C#里的lamda(话说lamda也不通俗易懂,继承了C#的风范...阅读全文

博文 2016-05-08 23:00:02 stoneandice

智能合约笔记(2)区块链概念2

上一篇文章提到过账户分为两种,外部账户和合约账户.外部账户的名字应该是外部拥有账户,这里简称为外部账户.该账户和银行的账户几乎是同一个概念,由人控制,并且没有观念任何代码.而合约账户的存储是代码控制的. 合约账户存储代码,外部账户却没有,这是区别之一.外部账户请求交易,合约账户响应交易,这是区别之二.这是我目前了解到的区别.对我而言,外部账户有点像客户端,合约账户像服务端的感觉.但是不能混为一谈. 钥匙文件是定义外部账户用的,有一个公钥和私钥.账户的地址最后20个字节就是公钥,而私钥和地址都被编码在一个钥匙文件中.钥匙文件是json格式. 每个账户都由一块持久化存储区域,以键值对的形式存储.,无论是key还是value长度都是256.第一个存储区是内存,第二个存储区被称为栈. 既然账户能存储...阅读全文

博文 2018-12-06 02:34:42 周杰伦演唱会门票还有吗

接口interface

在编程语言中,方法和函数的概念需要搞清楚。函数指的是一个封装的代码块,我们可以直接调用它,并返回结果。而方法其实也是一种函数,只不过方法需要和某个对象绑定。Golang并没有类的概念,不过仍然有方法和接口这些概念。 方法 方法接收者 方法接收者是一个特殊参数,给函数指定了这个参数之后,函数就成为方法了。这个特性有点像Kotlin和C#中的扩展方法,定义了带有接收者的方法之后,接收者这个类型就好像定义了这个方法一样,我们可以直接在该类型上调用方法。这在功能上,和面向对象的概念是很类似的。 例如下面这样,定义了一个汽车结构,然后定义了一个接受者方法。然后就可以用面向对象的方式来调用这个方法了。 func Method() { //方法接收者 car := Car{id: 1} car.beep(...阅读全文

博文 2018-12-28 12:34:43 陈卧虫

golang 开发后端基础(2)

继续周日内容,我们看一下 home.html 文件,在 index 中我们引入 style.css 作为样式表来控制页面的显示。将 style.css 放置 public/css 目录下。 运行程序,我们没有看到页面有任何的变化,说明样式没有成功加载。看一下是什么原因,打开控制台看一下有关 style.css 的加载信息,发现 html 加载content type 为 text/html ,这个没有问题,而 css 的 content type为 text/plain 而不是 text/css 所以没有样式,我们来尝试解决一下这个问题。 在之前代码的基础之上,我们添加名称 contentType 的 string 类型变量让他接受类型, 然后根据文件扩展名来给出不同 contentType...阅读全文

博文 2019-01-30 05:34:43 zidea

Golang 学习笔记(2)—— 函数

本文为转载,原文:Golang 学习笔记(2)—— 函数 函数定义 函数 是每一门开发语言的最基础的部件,下面看下go语言中的函数是怎么定义的: func Add(a, b int)int{ return a + b } func是定义函数的关键字,Add是函数名称,int是返回值,小括号内是函数的参数。可以随意安排函数定义的顺序,go在编译时会扫描所以的文件。 多返回值 go中函数支持多返回值,可以返回任意数量的返回值。多值返回在Go语言中是经常被用到的,比如,一个函数同时返回结果和异常。 下面我们看一个例子,divide函数是计算a/b的结果,返回商和余数。 package main import "fmt" func main(){ quotient, remainder := div...阅读全文

博文 2017-08-11 08:05:08 ChainZhang

为什么MaxCompute采用列式存储?列式存储和行式存储的主要区别在哪

摘要: 1 为什么要按列存储 列式存储(Columnar or column-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的。简单来说两者的区别就是如何组织表(翻译不好,直接抄原文了): Ø Row-based storage stores atable in a sequence of rows. Ø Column-based storage storesa table in a sequence of columns. 下面来看一个例子: 从上图可以很清楚地看到,行式存储下一张表的数据都是放在一起的,但列式存储下都被分开保存了。 **点此查看原文: http://click.aliyun.com/m/41691/** *...阅读全文

Golang http.RoundTripper

参考 Golang http.RoundTripper 笔记 RoundTripper is an interface representing the ability to execute a single HTTP transaction, obtaining the Response for a given Request. 对于http客户端,可以使用不同的实现了 RoundTripper 接口的Transport实现来配置它的行为。RoundTripper 有点像 http.Client 的中间件 一、接口定义 type RoundTripper interface { RoundTrip(*Request) (*Response, error) } 实现比如 type SomeC...阅读全文

博文 2019-03-26 19:34:41 懒皮