美文网首页
泛型的意思

泛型的意思

作者: 枫叶1234 | 来源:发表于2017-12-25 14:29 被阅读9次

在上面的泛型函数例子中,占位符T是类型参数的一个例子。类型参数指定并命名一个占位符类型,并用<>包裹,放在函数名后面。一旦一个参数类型确定,就可以指定参数类型,或者返回值的类型,还可以用作函数体的注释类型。在调用的时候会被实际的类型替代,如传递的是Int,就替换为Int,如果传入的是Double类型就替换为Double等等

5.泛型类型

除了定义泛型函数,还可以定义泛型类型。如Array,Dictionary的用法

struct IntStack{

var items = [Int]()

//压栈

mutating func push(item:Int){

items .append(item)

}

//出栈

mutating func pop()->Int{

return items.removeLast()

}

}

这个是一个泛型版本的栈

struct Stack{

var items = [Element]()

mutating func push(item:Element){

items.append(item)

}

mutating func pop()->Element{

return items.removeLast()

}

}

7.类型约束

在上面的SwapTwoVlues 和 Stack中,可以作用任何类型。但是也可以添加一个约束,比如指定一个类型必须采纳某协议或者是指定类等。在Swift中(Bool,Int,Doube,String默认都是哈希的),Dictionary的键就需要必须是可哈希的,方便字典查找是否已包含某个键的值。

类型约束语法

可以在类型参数名后面加一个类型或者协议名,通过冒号隔开,多个类型参数之间用逗号隔开

func somFuntion(someClass:C,someProtocol:P){

}

在定义的这个函数中,有两个类型约束,第一次类型参数C代表是某个类,第二个参数P代表某个协议。

func findIndex (array:[S],_ valueToFind:S)->Int? {

for  (index,value) in array.enumerate(){

if value == valueToFind { //如果没指定S:Equatable 这句话会编译不通过

return index

}

}

return nil

}

在这个泛型例子中,不是所有的类型都可以 用 == 来比较的,所有必须指定泛型类型参数的约束为 Swift提供的 Equatable 协议,这表示S代表的类型必须是支持 Equatable 协议的。所有的Swift标准类型默认都是支持Equatable协议的.

相关文章

  • 泛型的意思

    在上面的泛型函数例子中,占位符T是类型参数的一个例子。类型参数指定并命名一个占位符类型,并用<>包裹,放在函数名后...

  • java的泛型

    泛型,就是参数化类型的意思,具体表现为泛型类,泛型接口,泛型方法。 泛型主要用于编译过程不确定参数可能的类型,需要...

  • Java泛型详解

    泛型 泛型由来 泛型字面意思不知道是什么类型,但又好像什么类型都是。看前面用到的集合都有泛型的影子。 以Array...

  • Kotlin学习笔记之 10 泛型

    10.Kotlin 泛型 泛型约束就是我们在java中看到的T extends User,意思就是谁接受的泛型只能...

  • 泛型——Dart(五)

    泛型 从字面意思理解,就是广泛的类型,我们可以在集合中看到泛型的影子: 为什么要有泛型? 以集合为例,假如没有泛型...

  • Typescript(十三)泛型

    泛型:[generic - 通用、泛指的意思],那最简单的理解,泛型就是泛指的类型。 一:函数中的泛型 1:定义一...

  • Java泛型的类型擦除

    泛型是什么? 泛型的英文是 generics,generic 的意思是通用,而翻译成中文,泛应该意为广泛,型即是类...

  • 三、TypeScript 泛型

    什么是泛型 理解:泛型就是在编译期间不确定类型(广泛之意思),在调用时,由程序员指定的泛型具体指向什么类型。泛型在...

  • Scala泛型

    泛型的意思是 泛指某种具体的数据类型 , 在Scala中, 泛型用 [数据类型] 表示. 在实际开发中, 泛...

  • 泛型 & 注解 & Log4J日志组件

    掌握的知识 : 基本用法、泛型擦除、泛型类/泛型方法/泛型接口、泛型关键字、反射泛型(案例) 泛型 概述 : 泛型...

网友评论

      本文标题:泛型的意思

      本文链接:https://www.haomeiwen.com/subject/cwotgxtx.html