培训首页  >  web前端新闻  >  兄弟连Go语言培训type关键字

兄弟连Go语言培训type关键字

[2018-08-23 15:19:34] 浏览量:87 来源:

北京兄弟连IT

  2018年时已过半,在今年的区块链热潮中,国内各家科技巨头均已粉墨登场,开始在这个新兴领域里抢占高地。但在具体布局细节上,几大巨头又各有不同,从中亦可窥见它们各自对区块链的重视程度和期许方向。

 

  兄弟连Go语言全栈与区块链技术培训课程是由清华、微软和谷歌名师历时半年时间研发出的独一无二的体系化课程。课程涵盖9大学习阶段,及多个企业级项目实战和来自世界顶尖区块链比赛作品,并由以微软区块链最具价值专家尹成为代表的清华系区块链团队亲临授课,综合提升学员的职场竞争力。

 

type有几种用法:定义结构体,定义接口, 类型别名, 类型定义, 类型开关

 

定义结构体

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。类似Java 的类,我们可以把Go中的struct看作是不支持继承行为的轻量级的“类”。

我们来看看使用type怎么定义结构体:

 

//定义一个 Books结构体

type Books struct {

   title string

   author string

   subject string

   book_id int

}

 

//结构体内内嵌匿名成员变量定义

func main() {

   p := person{"abc",12}

   fmt.Println(p.string,p.int)

}

 

type person struct {

   string

   int

}

定义接口

 

//定义电话接口

type Phone interface {

   call()

}

类型别名

 

type name string   // name类型与string等价,就是将一个string类型起一个别名叫做name

在这里要区别 var声明方式

 

var name string    //这里是定义一个string变量

注:类型别名,只能对包内的类型产生作用,对包外的类型采用类型别名,在编译时将会提示如下信息:

 

cannot define new methods on non-local type string

类型定义

除了给已知的类型起别名,还可以针对新类型(自定义类型)函数进行定义

 

type handle func(str string)  //自定义一个函数func,别名叫做handle,传入一个string参数

类型开关

Go语言中中存在interface{}类型,可以用来保存任何类型的值,如果我们需要知道具体保存了哪些类型,就需要使用类型开关来判断,具体代码如下:

 

func classifier(items ...interface{})  {

   for i,x := range items {

      switch x.(type) {

      case bool:

         fmt.Printf("type #%d is bool",i)

      case float64:

         fmt.Printf("type #%d is float64",i)

      case string:

         fmt.Printf("type #%d is string",i)

      case int:

         fmt.Printf("type #%d is int",i)

      default:

         fmt.Printf("type is unknow")

      }

   }

}

高能预警,兄弟连教育区块链直播课程8月持续火爆来袭!

原价1188元的12节区块链进阶课程,现仅需1元!

还可免费领取《Go语言基础实战项目开发》与《Go语言高级实战项目开发》教材两本!!

限时限量!!先到先得!!

http://www.ydma.cn/open/course/24


关注兄弟连区块链技术公众号领取更多技术干货哦!!!



文中图片素材来源网络,如有侵权请联系删除
  • 软件开发
  • 软件测试
  • 数据库
  • Web前端
  • 大数据
  • 人工智能
  • 零基础
  • 有HTML基础
  • 有PHP基础
  • 有C语言基础
  • 有JAVA基础
  • 其他计算机语言基础
  • 周末班
  • 全日制白班
  • 随到随学

网上报名

热门信息