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

golang的指针receiver和非指针receiver的区别?

golang的指针receiver和非指针receiver的区别? 最大的区别应该是指针传递的是对像的引用,这样在方法里操作的时候可以动态修改对像的属性值。 非指针传递的是对像的拷贝。 这个应该和PHP的引用的用法差不多。 package main import ( "fmt" ) type Person struct { Name string Age int } func (p *Person) SayHi1() { p.Name = "leon1" } func (p Person) SayHi2() { p.Name = "leon2" } func main() { p1 := &Person{Name: "test", Age: 10} fmt.Println("name1 : ...阅读全文

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

golang官方包下面http的NewRequest方法和httptest的NewRequest方法的区别是什么?

看了一下,发现好像就httptest下面的NewRequest方法多了这句话 ``` req.RemoteAddr = "192.0.2.1:1234" ``` 别的还有什么区别吗? http的NewRequest方法地址:Golang/src/net/http/request.go,line765
httptest的NewRequest方法地址:/Golang/src/net/http/httptest/httptest.go,line4...阅读全文

一文摸清 Go 的并发调度模型

与其说并发调度,不如说,这就是一场“配对”游戏。线程模型在细说 Go 的调度模型之前,先来说说一般意义的线程模型。线程模型一般分三种,由用户级线程和 OS 线程的不同对应关系决定的。N:1,即全部用户线程都映射到一个OS线程上,上下文切换成本最低,但无法利用多核资源;1:1 , 一个用户线程对应到一个 OS线程上, 能利用到多核资源,但是上下文切换成本较高,这也是 Java Hotspot VM 的默认实现;M:N,权衡上面两者方案,既能利用多核资源也能尽可能减少上下文切换成本,但是调度算法的实现成本偏高。为什么 Go Scheduler 需要实现 M:N 的方案?线程创建开销大。对于 OS 线程而言,其很多特性均是操作系统给予的,但对于 Go 程序而言,其中很多特性可能非必要的。这样一来,...阅读全文

博文 2019-06-08 22:48:57 ZeaTalk

go语言学习笔记(第3章)—面向对象编程

一个典型的类型系统包括: 基础类型: byte, int, bool, float等 复合类型:数组,结构体,指针 可以指向任意对象的类型(Any类型) 值语义和引用语义 面向对象,即所有具备面向对象特征的类型 接口 在GO语言中可以为任意类型(包括内置类型)添加相应的方法 上面的例子中我们定义了一个新类型 Integer ,Integer和int没有本质区别,只是为内置的int增加了一个方法Less(),可以让整型像一个普通的类一样使用了。 在GO语言中没有隐藏的this指针 1) 方法施加的目标显示传递,没有被隐藏起来 2) 方法施加的目标不需要非得是指针,也不用非得叫this GO语言和C语言一样,类型都是基于值传递的,要想改变变量的值,只能在函数中传递指针。 1. 类型系统 1.1....阅读全文

博文 2015-10-27 15:00:21 mickelfeng

golang面向对象特性

和其他高级语言一样,golang 也支持面向对象编程,支持得比较简单,有些特性并不支持,但是够用了 接口 接口使用 interface 关键字声明,任何实现接口定义方法的类都可以实例化该接口,接口和实现类之间没有任何依赖,你可以实现一个新的类当做 Sayer 来使用,而不需要依赖 Sayer 接口,也可以为已有的类创建一个新的接口,而不需要修改任何已有的代码,和其他静态语言相比,这可以算是 golang 的特色了吧 type Sayer interface { Say(message string) SayHi() } 继承 继承使用组合的方式实现 type Animal struct { Name string } func (a *Animal) Say(message string) ...阅读全文

博文 2018-10-21 21:34:42 Chole121

1-3年的程序员,你跳槽了吗?

2019年年假放完回来,就着手跳槽的事情。对于我,一个普通二本,工作不到两年经验,二线互联网公司,刚投递简历的时候,碰壁不少。我相信很多不满公司现状的同学也是准备在一年中最旺盛的跳槽季做准备,鉴于我自己努力后,拿了几个offer(包括阿里与腾讯银行),分享一点心得。马爸爸说过,跳槽有两个原因,一是钱不到位,二是心伤了,而我,还要加一条,“未来的方向”。 本人是从事java技术岗,从近年来看,golang后来居上,已经开始动摇了java在后端的地位(当然我也遇到由于市场golang人才少和昂贵而转java技术栈的,如腾讯下某政务公司)。并不是说故步自封不学习新技术,而是在黄金跳槽季中,经验尚缺的我来不及学好另一门语言。对于“未来的方向”,我希望可以从事在金融领域上的开发,除了本身毕业于金融学院...阅读全文

博文 2019-05-01 15:34:41 云师兄padding

golang 面向对象特性

和其他高级语言一样,golang 也支持面向对象编程,支持得比较简单,有些特性并不支持,但是够用了 接口 接口使用 interface 关键字声明,任何实现接口定义方法的类都可以实例化该接口,接口和实现类之间没有任何依赖,你可以实现一个新的类当做 Sayer 来使用,而不需要依赖 Sayer 接口,也可以为已有的类创建一个新的接口,而不需要修改任何已有的代码,和其他静态语言相比,这可以算是 golang 的特色了吧 type Sayer interface { Say(message string) SayHi() } 继承 继承使用组合的方式实现 type Animal struct { Name string } func (a *Animal) Say(message string) ...阅读全文

博文 2018-06-19 19:34:44 hatlonely

Go_20: Golang 中 time 包的使用

time包中包括两类时间:时间点(某一时刻)和时常(某一段时间) 1. 时间常量(时间格式化) const ( ANSIC = "Mon Jan _2 15:04:05 2006" UnixDate = "Mon Jan _2 15:04:05 MST 2006" RubyDate = "Mon Jan 02 15:04:05 -0700 2006" RFC822 = "02 Jan 06 15:04 MST" RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone RFC850 = "Monday, 02-Jan-06 15:04:05 MST" RFC1123 = "Mon, 02 Jan 2006 15:04:05 M...阅读全文

博文 2017-10-01 14:30:01 liang1101

golang 面向对象特性

和其他高级语言一样,golang 也支持面向对象编程,支持得比较简单,有些特性并不支持,但是够用了 接口 接口使用 interface 关键字声明,任何实现接口定义方法的类都可以实例化该接口,接口和实现类之间没有任何依赖,你可以实现一个新的类当做 Sayer 来使用,而不需要依赖 Sayer 接口,也可以为已有的类创建一个新的接口,而不需要修改任何已有的代码,和其他静态语言相比,这可以算是 golang 的特色了吧 type Sayer interface { Say(message string) SayHi() } 继承 继承使用组合的方式实现 type Animal struct { Name string } func (a *Animal) Say(message string) ...阅读全文

博文 2018-06-19 19:34:43 hatlonely

化繁为简才是加密货币市场更具吸引力为更多人所用的关键

在加密货币行业因为安全性使然,导致很多安全平台在设计系统的时候对安全措施的层层加密,把平台的安全性达到顶点。我觉得这对于项目方来说出发点是没有问题的,因为资产的安全关乎着每一位用户对平台的热衷性。但是随着币圈市场的发展,我们不难发现很多项目方在设计平台安全功能的时候,在安全方面做得成本过高且复杂,这样容易丢失一大部分新的用户,同时用户的再教育成本相对来说就会比较昂贵了。 那么我们在设计平台的时候,如何才能让用户快速、轻松地购买数字货币,并轻松的入场呢?首先我们先看一下什么样的平台更为人所用呢?从我的角度来看:一套简单、安全的平台只会使自己的加密货币市场更具吸引力,并为更多人所用。 这是为什么呢?因为目前的币圈市场除了早期进入币圈的用户,还有现在进入币圈已经有了自己热衷的平台的用户,剩下的就是...阅读全文

博文 2019-10-21 21:28:12 yanfaruiec