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

Golang的反射reflect深入理解和示例

[TOC] Golang的反射reflect深入理解和示例 【记录于2018年2月】 编程语言中反射的概念 在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 每种语言的反射模型都不同,并且有些语言根本不支持反射。Golang语言实现了反射,反射机制就是在运行时动态的调用对象的方法和属性,官方自带的reflect包就是反射相关的,只要包含这个包就可以使用。 多插一句,Golang的gRPC也是通过反射实现的。 interface 和 反射 在讲反射之前,先来看看Golang关于类...阅读全文

博文 2018-02-04 18:10:59 掘金

对Golang interface的理解

理解golang的interface主要在于以下两点: interface是方法的集合 interface是一种类型 简单示例 package main import "fmt" type Animal interface { Speak() string } type Cat struct{} func (c Cat) Speak() string { return "cat" } type Dog struct{} func (d Dog) Speak() string { return "dog" } func Test(params interface{}) { fmt.Println(params) } func main() { animals := []Animal{Cat{}...阅读全文

博文 2017-06-27 13:08:38 GoDev

golang type关键字使用

type是go语法里的重要而且常用的关键字,type绝不只是对应于C/C++中的typedef。搞清楚type的使用,就容易理解go语言中的核心概念struct、interface、函数等的使用。以下我用例子代码总结描述,请特别留意代码中的注释。//1、定义结构体 //结构体定义 type person struct { name string //注意后面不能有逗号 age int } func main() { //结构体初始化 p := person{ name: "taozs", //注意后面要加逗号 age: 18, //或者下面的}提到这儿来可以省略逗号 } fmt.Println(p.name) } //初始化字段不一定要全部指定,比如下面也是可以的,name默认取长度为0的空...阅读全文

博文 2018-12-24 18:31:33 u010008759

mqtt介绍和go代码实现

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家...阅读全文

博文 2018-08-27 09:35:06 John_zhang

golang实现接口类和多态的一种做法

package main import "fmt" type IMessage interface { Print() } type BaseMessage struct { msg string } func (message *BaseMessage) Print() { fmt.Println("baseMessage:msg", message.msg) } type SubMessage struct { BaseMessage } func (message *SubMessage) Print() { fmt.Println("subMessage:msg", message.msg) } func interface_use(i IMessage) { i.Print() }...阅读全文

博文 2015-04-14 11:00:00 miros

李嘉璇:技术人如何深入人工智能

前不久趣直播举办了一场技术人成长交流会,邀请了《TensorFlow 技术解析与实战》作者李嘉璇来分享。以下是视频:以下是文字版:谢谢智维的介绍,介绍的太棒了,我其实没有他说的那么棒,让我压力好大,尤其巧哥又讲的那么好我目前主要是做人工智能方向的,比较熟悉的是 TensorFlow,我有写过一本书,《TensorFlow 技术解析与实战》,我这里面再多说两句,因为有非常多的人会问我,你是怎么写出一本书的?或者说你写出一本书遇到什么样的困难?我现在面试的时候就会有人问我这样的问题,会经常让我去说这个事,我跟大家分享一下。我在写这本书的时候,我脑子里没有第二件事了,我说的第二件事就包括吃饭和睡觉上厕所,脑子里没有这些,就是在我的意识里,这些东西都不存在的。我眼里只有这一件事,我活着就是为了写书这...阅读全文

golang 接口interface{}、断言、switch type

interface{} 可以接受任何类型的对象值 获取interface{}队形的数据类型,可以使用断言,或者 switch type 来实现 // Assertion project main.go package main import ( "fmt" ) type Bag struct { Key string } type Bag2 struct { Key int } func main() { var b1 interface{} var b2 interface{} b1 = Bag{Key: "1"} b2 = Bag2{Key: 0} //获取interface{}中存放的数据类型 //方法一: { //判断是否是Bag类型 若不是则置0 b, ok := b1.(Bag)...阅读全文

博文 2016-03-03 16:00:01 xia_xing

golang interface 接口的概念及实例

golang的interface并不像其他高级语言在类定义时添加限定作用,而是通过向上转型的方式,在业务代码的上下文中判断结构体(类)是否实现了接口里声明的方法。 type interfact Person { SetName(name string) GetName() string SetAge(age int) GetAge() int } type Boy struct { Name string Age int } func (boy *Boy) SetName(name string) { boy.Name = name } func (boy *Boy) GetName() string { return boy.Name } func (boy *Boy) SetAge(ag...阅读全文

博文 2019-05-16 19:34:38 big_cat

Golang-interface(一 基本使用)

github: https://github.com/ZhangzheBJUT/blog/blob/master/interface.md 一 接口概述 如果说gorountine和channel是支撑起Go语言的并发模型的基石,让Go语言在如今集群化与多核化的时代成为一道亮丽的风景,那么接口是Go语言整个类型系列的基石,让Go语言在基础编程哲学的探索上达到前所未有的高度。 Go语言在编程哲学上是变革派,而不是改良派。这不是因为Go语言有gorountine和channel,而更重要的是因为Go语言的类型系统,更是因为Go语言的接口。Go语言的编程哲学因为有接口而趋于完美。 C++,Java 使用"侵入式"接口,主要表现在实现类需要明确声明自己实现了某个接口。这种强制性的接口继承方式是面向对...阅读全文

博文 2015-06-18 17:04:35 Crazy__Programmer

golang面向对象总结

[plain] view plaincopy type $name struct{ property01 int property02 int } Golang里面的方法和接口都是基于这里type *** struct创建的类型,这里其实可以理解为: [php] view plaincopy class $name { public int property01; public int property02; } 类型就是类。 所以我们说是类型的某个方法,类型实现了某个接口。 类型是属性的集合,接口是方法的集合 函数的定义:func $funcName ( ) ( ){} 方法的定义:func ( ) $funcName ( ) ( ){} Func (成员变量 类型) funname(局部...阅读全文

博文 2015-06-17 20:02:17 erlang_team

golang 坑集

func main() { x := 1 defer func(a int) { fmt.Println("a=", a) }(x) defer func() { fmt.Println("x=", x) }() x++ } 结果: x=2 a=1 说明: defer 调用所需参数在 defer 语句执行时就被已计算好了 (拷贝传递),闭包内则是引用,defer执行顺序FIFO 数组和slice 数组是值类型 slice是引用类型, 数组的创建 arr:=[...]int{1,2,3} arr:=[3]int{} arr:=new([10]int) (注意new返回的是[10]int的指针类) slice的创建 slice:=[]int{1,2,3} slice:=arr[n:m]( n <...阅读全文

博文 2014-10-04 19:27:11 健哥大人

数据宝专场研讨会•贵安国际数字经济论坛•2017数博会圆满成功

2017年5月24日,2017数博会•贵安国际数字经济论坛•数据宝专场研讨会在北斗湾开元酒店多功能厅召开。本次数据宝专场研讨会以“共享•价值•大数据•大开放——大数据的流通与融合之美”为主题,由数据宝董事詹臻女士主持,会议分三个专题进行,分别是领导致辞、嘉宾演讲以及圆桌会议。 贵安新区管委会主任助理洛伟,国家工业信息安全发展研究中心(工业和信息化部电子第一研究所)副总经济师黄永金,中科院生物医药大数据中心主任李亦学教授,贵州数据宝网络科技有限公司董事长汤寒林,中国电信天翼征信有限公司产品总经理刘昊,中国联通智慧足迹数据科技有限公司首席营销官赵华,国家交通运输物流信息平台数据产品部总监董磊,中国电信医疗行业信息化应用(上海)基地常务副总经理谢青宇,中国金融行业自律联盟秘书长崔宏毅,江西服...阅读全文

Go 方法、接口

在 Go 中,类型可以定义接收此类型的函数,即方法。每个类型都有接口,意味着对那个类型定义了方法集合。 下面定义了结构体类型 S 以及它的两个方法: type S struct { i int } func (p *S) Get() int { return p.i } func (p *S) Put(v int) { p.i = v } 方法 方法就是有接收者的函数。 可以在除了非本地类型(包括内建类型,比如 int)的任意类型上定义方法。然而可以为内建类型定义别名,然后就可以为别名定义方法。如 type Foo int // 为 int 定义别名 Foo func (self Foo) Emit() { fmt.Printf("%v", self) } 接口 接口定义为一个方法的集合。方...阅读全文

Go语言的类型转换和类型断言

类型转换和类型断言是Go语言中比较绕的地方. Go语言要求所有统一表达式的不同的类型之间必须做显示的类型转换. 而作为Go语言鼻祖的C语言是可以直接做隐式的类型转换的. 当然作为const类的字面值常量是要灵活很多的. 不过Go语言必须做显示的类型转换的要求也有例外的情况: 当普通T类型变量向I接口类型转换时是隐式的! 当IX接口变量向I接口类型转换可以在编译期完成时是隐式的! 类型之间转换的例子 下面是Go语言规范给出的部分例子: *Point(p) // same as *(Point(p)) (*Point)(p) // p is converted to *Point <-chan int(c) // same as <-(chan int(c)) (<-chan int)(c) /...阅读全文

博文 2015-05-18 12:37:04 chai2010

AlphaGo的论文的译文,关于深度神经网络,蒙特卡洛树搜索:Mastering the game of Go with deep neural networks and tree search

前言: 围棋的英文是 the game of go,标题翻译为:《用深度神经网络和树搜索征服围棋》。译者简介:大三,211,计算机科学与技术专业,平均分92分,专业第一;英文水准:托福 103分,GRE v158 + q167 + AW3.5。为了更好地翻译此文,笔者查看了很多资料。笔者翻译此论文已尽全力,不足之处希望读者指出。 在AlphaGo的影响之下,全社会对人工智能的关注进一步提升。在笔者考完GRE的当天,3月12日,AlphaGo 第三次击败李世石。在3月15日总比分定格为4:1,随后AlphaGo的围棋排名世界来到第二。 论文的英文原文点击这里拜读 编者按:吐槽CSDN的后台服务器,在我用LaTeX编写的公式结尾都加上了一个“|”,比如:公式公式。这真是一个醉人的Bug。2014...阅读全文

博文 2016-03-22 19:00:01 u013390476

Go Reflect

最近在看一些go语言标准库以及第三方库的源码时,发现go的reflect被大量使用,虽然反射的机制大多数语言都支持,但好像都没有go一样这么依赖反射的特性。个人觉得,reflect使用如此频繁的一个重要原因离不开go的另一个特性,空接口interface{},reflect配合空接口,让原本是静态类型的go具备了很多动态类型语言的特征。 另外,虽然反射大大增加了go语言的灵活性,但要完全掌握它的原理和使用也还是有一点难度的。 go的reflect库有两个重要的类型: reflect.Type reflect.Value Type,Value分别对应对象的类型和值数据 还有两个重要的函数: reflect.TypeOf(i interface{}) Type reflect.TypeOf()返...阅读全文

博文 2014-10-11 10:15:04 kenshin

golang type 和断言 interface{}转换

摘要 类型转换在程序设计中都是不可避免的问题。当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要去关 注这方面的问题。但是golang中的类型匹配是很严格的,不同的类型之间通常需要手动转换,编译器不会代你去做这个事。我之所以说通常需要手动转换,是 因为interface类型作为一个特例,会有不同的处理方式。 类型转换在程序设计中都是不可避免的问题。当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要 去关注这方面的问题。但是golang中的类型匹配是很严格的,不同的类型之间通常需要手动转换,编译器不会代你去做这个事。我之所以说通常需要手动转 换,是因为interface类型作为一个特例,会有不同的处理方式。 golang中的所有类型都有自己的默认值,对此我做了个测试。 $GOP...阅读全文

博文 2016-07-05 05:00:10 zhangym

Golang笔记-浅谈interface

前言 class和interface在高级语言中是很重要的概念。class是对模型的定义和封装,interface则是对行为的抽象和封装。Go语言虽然没有class,但是有struct和interface,以另一种方式实现同样的效果。 本文将谈一谈Go语言这与别不同的interface的基本概念和一些需要注意的地方。 声明interface type Birds interface { Twitter() string Fly(high int) bool } 上面这段代码声明了一个名为Birds的接口类型(interface),这个接口包含两个行为Twitter和Fly。 Go语言里面,声明一个接口类型需要使用type关键字、接口类型名称、interface关键字和一组有{}括起来的方法声...阅读全文

博文 2018-08-19 19:34:46 tinywell

golang: 详解interface和nil

golang的nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。nil是预先说明的标识符,也即通常意义上的关键字。在golang中,nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果未遵循这个规则,则会引发panic。对此官方有明确的说明:http://pkg.golang.org/pkg/builtin/#Type golang中的interface类似于java的interface、PHP的interface或C++的纯虚基类。接口就是一个协议,规定了一组成员。这个没什么好说的,本文不打算对宏观上的接口概念和基于接口的范式编程做剖析。golang语言的接口有其独到之处:只要类型T的公开方法完全满足接口...阅读全文

博文 2014-11-20 22:00:00 kai_ding

go post json 遇到的问题

想用go写一个客户端,发一个JSON数据到JAVA的服务端接口, 结果,JAVA接收的BODY一直是空,但是PYTHON写的服务端是OK的 网上查了方法 其中:一些方法 也试过了, type RequestBody struct { Status string `json:"status"` Region []string `json:"region"` Percent string `json:"percent"` Task_id string `json:"task_id"` } b, err := json.Marshal(rbody) body := bytes.NewBuffer([]byte(b)) (1) resp, err := http.Post(url, "applica...阅读全文

博文 2015-09-18 15:00:01 vance928

数据宝参展2017中国国际软件博览会

6月29日,第十二届中国国际软件博览会(以下简称:2017软博会)在北京展览馆开幕,本届软博会由工业和信息化部与北京市人民政府主办,国务院副总理马凯莅临软博会现场,工业和信息化部部长苗圩、北京市代市长陈吉宁、北京市经济和信息化委员会主任张伯旭等领导随行。 ![1.jpg](http://studygolang.qiniudn.com/170710/fa38bd5deaf78ea0c0e68dd52f16ba8a.jpg) 中共中央政治局委员、国务院副总理马凯出席并讲话 马凯指出,软件是信息网络的核心和灵魂。全球软件业正在步入加速创新、快速迭代、群体突破的爆发期,在促进世界经济发展和人类文明进步中将发挥越来越重要的作用。中国政府高度重视发展软件产业,制定了鼓励软件产业发展的重大政策,...阅读全文

Golang基本类型整理

总是用的用的就模糊了,不知道基本的类型有哪些,看来要反反复复弄几次。 Golang基本类型整理 基本类型以及定义变量需要注意的 对于基本类型的介绍,感觉这个博客讲的比较透彻,基本上都是从源码的角度来入手分析的,自己并没有理解到这么深入的程度,这里跟着文章过一下,挑一些主要的部分记录一下。在go语言中,数据类型分为静态类型和底层类型,感觉底层类型是golang实现的时候所使用的c语言的类型,而静态类型仅仅是针对于go语言本身而言所定义好的类型。具体的信息可以查看$GOROOT/src/runtime/runtime.h 可以看到golang中的byte类型,通过typedef uint8 byte来定义,这样在golang中直接使用反射 package main import ( "fmt" ...阅读全文

博文 2015-06-23 03:00:00 Goden

2018年全球十大突破性技术有哪些?

3月25日,科技之巅•麻省理工科技评论全球十大突破性技术峰会在北京召开,该峰会是全球最为著名的技术榜单之一,峰会围绕十大突破性技术在中国落地性最强,并对目前最受关注的领域进行深入解读。 2018年“全球十大突破性技术”分别是给所有人的人工智能、对抗性神经网络、人造胚胎、基因占卜、传感城市、巴别鱼耳塞、完美的网络隐私、材料的量子飞跃、实用型3D金属打印机以及零碳排放天然气发电。 **1. 给所有人的人工智能** 当人工智能技术与云技术相结合,将机器学习工具搬上云端,那么将有助于在医疗、制造、能源等行业更全面地推行人工智能技术,从而降低技术的使用难度和价格,极大地提高各产业的生产力。 **2. 对抗性神经网络** 形象地说,就是让两个 AI 系统通过玩“猫捉老鼠”游...阅读全文

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中的类和接口的使用

类使用:实现一个people中有一个sayhi的方法调用功能,代码如下: type People struct { //.. } func (p *People) SayHi() { fmt.Println("************************* say hi !!") } func (this *LoginController) Get() { p := new(People) p.SayHi() this.TplName = "login.html" } 接口使用:实现上面功能,代码如下: type People struct { //.. } func (p *People) SayHi() { fmt.Println("*************************...阅读全文

博文 2016-04-26 01:00:00 vipstone

golang: 类型转换和类型断言

类型转换在程序设计中都是不可避免的问题。当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要去关注这方面的问题。但是golang中的类型匹配是很严格的,不同的类型之间通常需要手动转换,编译器不会代你去做这个事。我之所以说通常需要手动转换,是因为interface类型作为一个特例,会有不同的处理方式。 golang中的所有类型都有自己的默认值,对此我做了个测试。 $GOPATH/src ----typeassert_test --------main.go main.go的代码如下: package main import ( "fmt" ) type myStruct struct { name bool userid int64 } var structZero myStruct v...阅读全文

博文 2014-10-04 19:26:57 陈一回

深度学习第一课

近几年深度学习的概念非常火,我们很幸运赶上并见证了这一波大潮的兴起。记得2012年之前提及深度学习,大部分人并不熟悉,而之后一段时间里,也有些人仍旧持怀疑的态度,觉得这一波浪潮或许与之前sparse coding类似,或许能持续火个两三年,但终究要被某个新技术新方法所取代,再后来,无论是学术界还是工业界,总有些研究者为自己没有在第一时间跟进这波浪潮感到后悔莫及。确实,从2012年AlexNet取得ImageNet的冠军开始,五年过去了,深度学习的方法仍旧占领着人工智能这片领域。 随着这波浪潮,有些人作为弄潮儿,兴起一波波巨浪,引领各个领域从传统方法到深度学习方法的转变,并希望能够通过了解其他领域的方法改进自己所从事的领域;有些人辛勤地工作,利用深度学习的方法为公司提高业绩,希望实时跟进并实现...阅读全文

博文 2017-06-24 09:52:16 PaddlePaddle开源团队

golang中net包用法(三)--TCP和UDP以及Unix domain socket

type TCPAddr //表示TCP终端地址 type TCPAddr struct { IP IP Port int Zone string // IPv6寻址范围 } func ResolveTCPAddr(net, addr string) (*TCPAddr, error)//将一个地址解析成TCP地址形式,形如"host:port"或 "[ipv6-host%zone]:port",解析得到网络域名和端口名.其中net必须是"tcp","tcp4"或者"tcp6",IPv6地址字面值/名称必须用方括号包起来,如"[::1]:80"、"[ipv6-host]:http"或"[ipv6-host%zone]:80". func (a *TCPAddr) Network() stri...阅读全文

博文 2015-06-18 19:00:33 chenbaoke

golang interface赋值

说说我对golang的interface赋值的理解。 先说golang中类型方法定义。 如 type bird struct { id int } func (b bird) fly() { fmt.Println("fly") } func (b *bird) eat() { b.id++ } 中bird类型有两个方法,fly和eat。 两个方法是有区别的,fly由(b bird)绑定,eat由(b *bird)绑定。 在应用中,(b *bird)绑定方式可以修改对象中的参数,而(b bird)方式则不可以。 再来说接口的赋值。接口赋值可以分为对象对接口的赋值和接口对接口的赋值。 对象对接口的赋值需要对象完全实现接口定义的所有方法。 如定义如下接口 type animal interfac...阅读全文

博文 2015-06-17 20:02:23 iwbno1

在线学习平台具备什么特色和特点?

其实在我们的生活中,对于在线学习平台并不陌生,现在企业、教育单位和培训机构都会使用在线学习平台来进行线上学习、培训。使用在线学习平台,可以很好减少人力和物力成本,那么在线学习平台有哪些特色和特点呢? 在线学习平台是通过计算机互联网,或是通过手机无线网络,在一个网络虚拟教室与教室进行网络授课、学习。它不需要特定的时间到特定的地点进行学习,只要有一台电脑、一部手机在有网的地方就能进行学习。再者就是在线培训平台的稳定和安全性,或许很多人会担心在线学习平台的稳定性和安全性,担心在线学习系统会不稳定而丢失了重要数据。但其实不用担心,好智学在线学习平台采用APACHE 2.0+MYSQL+Golang技术,能够保证数据安全稳定,数据储存备份。再者就是在安装上来说,在线培训系统无需安装系统软件,直接在好智...阅读全文

博文 2019-07-08 11:02:42 在线培训学习系统

更优雅的 Golang 错误处理

Golang 中的错误处理是一个被大家经常拿出来讨论的话题(另外一个是泛型)。其中泛型这个问题,rsc 在最近的计划中也提出了纳入他今年的考虑计划中,同时,泛型的提案在2016年也进行了一些更新,相信未来会有一些更好的方案提出。这个文章我们讨论一下如何在现行的 Golang 框架下提供更友好和优雅的错误处理。 从现状谈起 Golang 中的错误处理原则,开发者曾经之前专门发布了几篇文章( Error handling and Go 和 Defer, Panic, and Recover、Errors are values )介绍。分别介绍了 Golang 中处理一般预知到的错误与遇到崩溃时的错误处理机制。 一般情况下,我们还是以官方博客中的错误处理例子为例: func main() { f,...阅读全文

博文 2017-02-10 07:42:04 kevin

golang sort 包使用,及三个简单排序算法冒泡,插入,选择 练习

sort 包的核心类型是 sort.Interface: type Interface interface { // Len is the number of elements in the collection. Len() int // Less reports whether the element with // index i should sort before the element with index j. Less(i, j int) bool // Swap swaps the elements with indexes i and j. Swap(i, j int) } 接口 是golang 的很cool 的特性,rob pike 说接口有点类似uinx pipe,把...阅读全文

博文 2015-01-22 17:00:11 yujian0231

C++ 相关后台 应用方面 职位分享(更新于20171027)

一、滴滴 后台开发(C++/Java)Linux C/C++开发工程师(J170525300)新四业务部工作地点:北京工作职责:1. 负责后台服务设计和开发;2. 负责后台数据库设计和架构;3. 负责后台核心模块代码重构和数据维护工作。任职资格:-具有分布式系统设计经验-熟练掌握c++,有较强的编程能力和编程经验-熟练使用shell、python等脚本-熟悉linux操作环境,熟练掌握网络编程、多线程编程等技术知识-学习能力强,具备较好的沟通能力二、快手 C++(存储开发,系统开发)C++高级后端开发工程师J10117工作职责1. 承担关键高并发分布式系统的研发工作,支撑业务发展2. 持续优化系统架构,推动多活分布、平台化等技术架构演进任职资格1.本科及以上学历,计算机科学与技术、软件工程或...阅读全文

博文 2017-10-27 03:05:02 持续成长的mage

golang reflect

golang reflect go语言中reflect反射机制。详细原文:地址 接口值到反射对象 package main import ( "fmt" "reflect" ) func main() { var x int = 1 fmt.Println("type: ", reflect.TypeOf(x)) } type: int TypeOf函数的定义如下,参数为接口类型,返回值为类型 func TypeOf(i interface {}) Type ValueOf函数的定义如下,参数为接口类型,返回值为Value var x int = 1 fmt.Println("value: ", reflect.ValueOf(x)) value: 可以通过Kind函...阅读全文

ECUG Con 2011 - 国内第一场 Go 语言为主题的盛宴

ECUG Con 2011 介绍 ECUG.ORG 是 ECUG Con 大会的官方支持站点。 ECUG 全称为 Effective Cloud User Group(实效云计算用户组)。我们关注的是并发模型和分布式开发的最佳实践。 按照 ECUG 的计划,预计每年我们都会举行一次全国性的 ECUG Con 大会。下面是历届的会议资料: 2007年9月8日,CN Erlounge I,珠三角 Erlang 爱好者小聚。无会议资料,但酝酿了之后具有里程碑意义的 CN Erlounge II。2007年10月13~14日,CN Erlounge II (ECUG Con 2007)在珠海召开。金山为大会主要赞助方。2008年12月20~21日,CN Erlounge III(ECUG Con 2...阅读全文

博文 2014-10-19 17:00:00 xushiweizh

总结2019常用书单网站

# 总结2019,展望2020新的一年,新的目标,2019定的那些目标是不是都已经实现,2020是否已经指定了新的目标。2019年在手机上花费了大量的时间和金钱。全家人的手机,大概算了一下,能花了有小一万了。你花在手机上的时间越多越可能觉得自己像个文盲当我们看到夕阳西下我们想到的是:“卧槽!好多鸟!”“艾玛,真好看!” 我们早已忘记了:“落霞与孤鹜齐飞,秋水共长天一色”看见一轮明月,我们想到的是“卧槽真尼玛圆。”而不是“但愿人长久,千里共婵娟”,跟心仪对象聊天,吹不出文艺有趣彩虹屁看到稍带点文化的段子接不上梗哪怕是发生了令人气愤的社会新闻也不能完整表达自己的观点只好当个“金句复读机” 更可怕的是,随着语言水平的退步思维能力也随之下降,不着四六的论调频出一篇文章超过600字高呼“太长不看”一条...阅读全文

博文 2020-02-12 07:32:54 思考让人长寿

成都云创一指网络科技有限公司/招聘golang开发//薪资面议//双休//其他语言可转

1、统招专科以上学历,22-35岁,具有良好的团队合作精神,有较强的开发能力和灵活性; 2、熟悉golang语言,基础扎实,1年以上golang开发工作经验,有完整的项目经验优先 ; 3、熟悉Golang协程,精通channel和锁,对高并发、高可用架构系统有正确、深刻的理解,要求有分布式服务器开发经验; 4、有Web开发经验,对RESTful概念有清晰的理解,并至少有一次API Server开发项目中运用到; 5、熟悉xml/json/protobuf等至少任意一种网络通信技术和数据交换格式 6、有清晰的编程思路; 7、工作积极主动,态度踏实认真,有较强的职业素养和工作操守; 8、对技术有激情,喜欢钻研,能快速接受和掌握新技术,学习能力和工作责任心强,良好的沟通表达能力和团队...阅读全文

Golang中的类型和类型断言

#### golang中的类型 golang中的有两种类型,**静态类型(static type)**和**动态类型(dynamic type)** **静态类型**:静态类型是在声明变量的时候指定的类型,一个变量的静态类型是永恒不变的,所以才被称为静态类型,也可以简称为类型,普通变量只有静态类型。 ``` package main import "fmt" func main() { // 变量i和变量g只有静态类型,变量i的类型为int,i的类型为main.Goose, var i int var g Goose fmt.Printf("%T\n", i) fmt.Printf("%T\n", g) } type Goose struct { age int name string } ...阅读全文

博文 2019-04-26 17:14:08 LeeYubo

深度学习第二课:个性化推荐

大家好,我是来自 PaddlePaddle 开源社区的李钊(@livc),目前是一名大三学生。我曾经在手机百度实习,参与推荐算法和反作弊的研发工作,目前是 IDL 的一名实习生。很开心作为 Paddle Tutorials 系列的作者之一参加 GitChat 的分享。 在 Paddle 深度学习系列 Chat 的第一课中,官方开发组的张睿卿同学通过介绍一些深度学习的应用场景,带领大家了解深度学习的基本原理和工作方式,我们先来简单回顾下。 “人工智能”并不是一个很新的概念,它其实已经有 60 岁了,它的发展经历了三起三落,像极了数学史上的“三次危机”。作为燃料的大数据和硬件(GPU)腾兴带来的并行运算,促成了深度学习在 2012 年左右的大爆发。深度学习有很多有趣的应用,比如,搭载 GoPro...阅读全文

人工智能聊天机器人Olivia

Olivia 是带有人工神经网络的人工智能聊天机器人。 ![image](https://static.oschina.net/uploads/space/2019/0617/141938_28Mx_4105562.png) ### 使用 要使用 REST Api,必须使用两个参数建立对 `/api/response` 的 `POST` 请求: * `sentence` 这是要发送给 Olivia 的消息 * `authorId` 这是一个任意 ID,用于标识用户进行上下文聊天 ### 示例

curl -X POST 'https://olivia-api.herokuapp.com/api/response' --data "...阅读全文

goLang 类型断言 type assertion

goLang有类型转换/类型断言/类型切换 1.类型断言 类型断言就是将接口类型的值(x),装换成类型(T)。格式为: x.(T) v:=x.(T) v,ok:=x.(T) 类型断言的必要条件就是x是接口类型,非接口类型的x不能做类型断言: var i int=10 v:=i.(int) //错误 i不是接口类型 T可以是非接口类型,如果想断言合法,则T应该实现x的接口 T也可以是接口,则x的动态类型也应该实现接口T var x interface{}=7 //x的动态类型为int,值为7 i:=x.(int) // i的类型为int ,值为7 type I interface {m()} var y I s:=y.(string) //非法: string 没有实现接口 I (missin...阅读全文

博文 2018-02-05 15:34:42 soledad

[远程][10k-20k]Team247 招聘全栈工程师

### 关于我们 Team247 是一家位于硅谷的软件创业公司。 Team247 致力于将智慧产权投资于广大的互联网以及移动应用的初创公司,在过去的一年取得了高速的成长和发展。目前由于业务的不断增加,诚邀全栈工程师的加入 ### 待遇 - 社保补助 - 弹性化工作时间 - 灵活的工作地点 - 一年 12 天带薪假 ### 要求 - 两年以上的全栈开发经验 - 良好的英语读写能力,可以根据英文文档进行开发 - 在压力下能快速学习,按照自己的计划高质量地完成工作 - 具有团队合作精神与沟通协调能力 - 有安静的工作环境和高速网络连接 ### 联系方式 - 请发送简历至 jobs@theteam247.com,谢谢! ...阅读全文

[笔记] Golang小试实现神经网络框架

国庆节宅在家里,看完了40集的电视剧,也刷了4K代码。最近看看Golang,然后想摆弄一下神经网络。虽然如今都是第三方库泛滥,开源代码拿来即用,而这次对自己的要求是没有第三方库,代码自成闭包。这样更有自主控制性,加深对神经网络实现的理解,也省去了学习各种三方包的用法,顺带着熟练下Golang这门新语言。 搜索引擎可以找到各种神经网络的入门文章。 A Neural Network in 11 lines of Python Anyone Can Learn To Code an LSTM-RNN in Python 这两篇算是不错的入门级文章,虽然第二篇直接跳到比较新的循环神经网络。写文章的前辈代码质量虽然不是特别高,但是也是一行一行用尽洪荒之力来分析代码。第一篇的11行代码的神经网络很清晰,...阅读全文

博文 2016-10-10 01:00:01 prog_6103

Web 服务及网络服务框架Go Frame

## 介绍 gf(Go Frame)是一款为Web服务及网络服务开发设计的,模块化、低耦合、轻量级的Go语言开发框架。 实现了通用的HTTP/TCP/UDP Server,并提供了Web服务开发的系列核心组件, 包括:MVC、Cookie、Session、模板引擎、路由控制、配置管理、数据校验、数据库操作(ORM)等等, 并且提供了数十个实用开发模块,包括:缓存模块、日志模块、JSON模块、命令行模块、二进制模块、环境变量模块、并发安全容器、Goroutine池等等。 gf是开源的,免费的,基于MIT...阅读全文

golang excel

github.com/tealeg/xlsx 封装的接口简单易用 package main import ( "bufio" "fmt" "github.com/tealeg/xlsx" "os" "strings" ) func main() { if len(os.Args) != 3 { fmt.Printf("Usage : %s inFile outFile\n", os.Args[0]) return } inFileName := os.Args[1] outFileName := os.Args[2] inFh, err := os.OpenFile(inFileName, os.O_RDONLY, 0755) if err != nil { fmt.Printf("open...阅读全文

博文 2015-04-04 03:00:00 rojas

轻量级且高性能的 Golang 网络库gnet

[项目详情链接](https://taohuawu.club/go-event-loop-networking-library-gnet) `gnet` 是一个基于 Event-Loop 事件驱动的高性能和轻量级网络库。这个库直接使用 [epoll](https://en.wikipedia.org/wiki/Epoll) 和 [kqueue](https://en.wikipedia.org/wiki/Kqueue) 系统调用而非标准 Golang 网络包:[net](https://golang.org/pkg/net/) 来构建网络应用,它的工作原理类似两个开源的网络库:[libuv](https://github.com/libuv/libuv) 和 [libevent](ht...阅读全文

Golang SQL 操作初体验

简介 Golang 提供了 database/sql 包用于对 SQL 的数据库的访问, 在这个包中, 最重要的自然就是 sql.DB 了.对于 sql.DB, 我们需要强调的是, 它并不代表一个数据库连接, 它是一个已存在的数据库的抽象访问接口. sql.DB 为我们提供了两个重要的功能: sql.DB 通过数据库驱动为我们管理底层数据库连接的打开和关闭操作. sql.DB 为我们管理数据库连接池 有一点需要注意的是, 正因为 sql.DB 是以连接池的方式管理数据库连接, 我们每次进行数据库操作时, 都需要从连接池中取出一个连接, 当操作任务完成时, 我们需要将此连接返回到连接池中, 因此如果我们没有正确地将连接返回给连接池, 那么会造成 db.SQL 打开过多的数据库连接, 使数据库连...阅读全文

GO 语言接口与结构体 - interface & struct

interface & struct 接口与结构体 以继承为特点的 OOP 只是编程世界的一种抽象方式,在 Golang 的世界里没有继承,只有组合和接口,并且是松散的接口结构,不强制声明实现接口,这看起来更符合 Java 之父 Gosling 的设想。 If it looks like a duck, swims like a duck, and quacks like a duck, then it probably is a duck. 翻译过来就是:如果某个东西长得像鸭子,像鸭子一样游泳,像鸭子一样嘎嘎叫,那它就可以被看成是一只鸭子。 单一继承关系解决了 is-a 也就是定义问题,因此可以把子类当做父类来对待。但对于父类不同但又具有某些共同行为的数据,单一继承就不能解决了,C++ 采...阅读全文

博文 2019-08-02 22:32:40 坚果jimbowhy