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

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

[广州]招聘 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...阅读全文

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的赋值

想了想,介绍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中的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

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 - 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

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语言 类型断言性能测试

载自达达的博客 在一些通用化的接口设计中,我们不得不用interface{}来代表任意类型,然后在接口内部用类型转换来判断具体类型,从而执行具体逻辑。但是类型判断是有性能代价的,如果能具像化的知道这个性能代价有多大,就可以帮助我们设计接口的时候判断应该怎么设计。 下面是实验代码(github): package labs01 import "testing" type InterfaceA interface { AA() } type InterfaceB interface { BB() } type A struct { v int } func (a *A) AA() { a.v += 1 } type B struct { v int } func (b *B) BB() { b....阅读全文

博文 2015-06-17 23:03:43 abv123456789

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

初看go 编程语言有感

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

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 13:00:04 liangguangchuan

shadowsocks-go源代码分析

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

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

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 16:05:08 ChainZhang

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 14:04:56 Link_Biao