go语言查询某个值是否在数组中_[Go区块链基础]go接口

3765f17bf93d3c0fd437d27c32d24e4e.png

1. 概述

类型系统是指一个语言的类型体系结构。

一个典型的类型系统通常包含如下基本内容:

  • 基础类型,如byte、 int、 bool、 float等;
  • 复合类型,如数组、结构体、指针等;
  • 可以指向任意对象的类型(Any类型);
  • 值语义和引用语义;
  • 面向对象,即所有具备面向对象特征(比如成员方法的类型;
  • 接口。

类型系统描述的是这些内容在一个语言中如何被关联。

在传统的面相对象编程语言中,比如Java,存在两套完全独立的类型系统:

  • 值类型系统,主要是基本类型,如byte、int、 boolean、 char、double等,这些类型基于值语义;
  • 以Object类型为根的对象类型系统,这些类型可以定义成员变量和成员方法,可以有虚函数,基于引用语义,只允许在堆上创建(通过使用关键字new)。

Java语言中的Any类型就是整个对象类型系统的根——java.lang.Object类型,只有对象类型系统中的实例才可以被Any类型引用。值类型想要被Any类型引用,需要装箱 (boxing)过程,比如int类型需要装箱成为Integer类型。另外,只有对象类型系统中的类型才可以实现接口,具体方法是让该类型从要实现的接口继承。

相比之下, Go语言中的大多数类型都是值语义,并且都可以包含对应的操作方法。在需要的时候,你可以给任何类型(包括内置类型)“增加”新方法。而在实现某个接口时,无需从该接口继承(事实上,Go语言根本就不支持面向对象思想中的继承语法),只需要实现该接口 要求的所有方法即可。任何类型都可以被Any类型引用。Any类型就是空接口,即interface{}。

2. 为类型添加方法

在Go语言中,你可以给任意类型(包括内置类型,但不包括指针类型)添加相应的方法,例如:

type Integer int
func (a Integer) Less(b Integer) bool {
    
    return a < b
}

在这个例子

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值