《Swift开发实战》——第2章,第2.8节泛型

2.8 泛型
在Swift语言中,在尖括号里写一个名字来创建一个泛型函数或者类型。例如,如下所示的演示代码。

func repeat<ItemType>(item: ItemType, times: Int) -> ItemType[] {
    var result = ItemType[]()
    for i in 0..times {
        result += item
    }
    return result
}
repeat("knock", 4)
你也可以创建泛型类、枚举和结构体。

// Reimplement the Swift standard library's optional type
enum OptionalValue<T> {
    case None
    case Some(T)
}
var possibleInteger: OptionalValue<Int> = .None
possibleInteger = .Some(100)

在Swift语言中,在类型名后面使用where关键字来指定对类型的需求。例如,限定某个类型来实现某一个协议,限定两个类型是相同的,或者限定某个类必须有一个特定的父类。例如,如下所示的演示代码。

func anyCommonElements <T, U where T: Sequence, U: Sequence, T.GeneratorType.Element: Equatable, T.GeneratorType.Element == U.GeneratorType.Element> (lhs: T, rhs: U) -> Bool {
    for lhsItem in lhs {
        for rhsItem in rhs {
            if lhsItem == rhsItem {
                return true
            }
        }
    }
    return false
}
anyCommonElements([1, 2, 3], [3])

在Swift语言中,可以忽略where关键字,只在冒号后面写协议或者类名。例如,如下两种格式是完全等价的。

<T: Equatable>
<T where T: Equatable>
时间: 2024-11-10 12:02:39

《Swift开发实战》——第2章,第2.8节泛型的相关文章

《Swift开发实战》——第16章,第16.1节下标脚本语法

第16章 下标脚本 Swift开发实战 在Swift语言中,类(class).结构体(structure)和枚举(enumeration)等目标中定义下标脚本,被认为是访问对象.集合或序列的快捷方式,不需要再调用实例的特定的赋值和访问方法.在本章的内容中,将详细讲解Swift下标脚本的基本知识. 16.1 下标脚本语法 在Swift语言中,可以使用下标脚本访问一个数组(Array)实例中的元素,参见如下所示的格式. someArray[index] 在访问字典(Dictionary)实例中的元素

《Swift开发实战》——第2章,第2.1节千里之行,始于足下——Swift语言基础

第2章 千里之行,始于足下--Swift语言基础 Swift开发实战 Swift 是一种适用于 iOS 和 OS X 应用开发的全新编程语言,它建立在C和Objective-C语言基础之上,并且没有C语言的兼容性限制.Swift 采用安全的编程模式,增加了现代功能,使编程更容易.更灵活.更有趣.Swift 以成熟且备受宠爱的Cocoa和 Cocoa Touch 框架作为支撑,这是一个重新构建软件开发的机会.本章将带领大家学习Swift这门神奇语言的基本语法知识,为读者步入本书后面知识的学习打下基

《Swift开发实战》——第1章,第1.1节Swift概述

第1章 工欲善其事,必先利其器--Swift语言基础Swift开发实战Swift是苹果公司在WWDC2014大会上所发布的一门全新的编程语言,用于编写OS X和iOS应用程序.苹果公司在设计Swift语言时,就有意让其和Objective-C共存,Objective-C是苹果操作系统在导入Swift前使用的编程语言.本章将带领大家初步认识Swift这门神奇的开发语言,让读者为学习本书后面的知识打下基础. 1.1 Swift概述Swift是一种为开发iOS和OS X应用程序而推出的全新编程语言,是

《Swift开发实战》——第1章,第1.2节搭建开发环境

1.2 搭建开发环境都说"工欲善其事,必先利其器",这一说法在编程领域同样行得通,学习Swift开发也离不开好的开发工具的帮助.在本节中,将详细讲解搭建Swift语言开发环境的基本知识. 1.2.1 Xcode 6介绍要开发iOS的应用程序,需要一台安装有Xcode工具的Mac OS X电脑.Xcode是苹果提供的开发工具集,它提供了项目管理.代码编辑.创建执行程序.代码调试.代码库管理和性能调节等功能.这个工具集的核心就是Xcode程序,提供了基本的源代码开发环境. Xcode是一款

《Swift开发实战》——导读

目 录 内容简介 前 言 第1章 工欲善其事,必先利其器--Swift语言基础 1.1节Swift概述1.2节搭建开发环境1.3节使用Xcode开发环境1.4节启动iOS 8模拟器 第2章 千里之行,始于足下--Swift语言基础2.1节千里之行,始于足下--Swift语言基础2.2节简单值2.3节流程控制2.4节函数和闭包2.5节对象和类2.6节枚举和结构体2.7节协议和扩展2.8节泛型 第3章 新语言,新特性--Swift的基础语法 第4章 运算符 第5章 字符串和字符 第6章 表达式 第7

《基于模型的软件开发》——第3章 泛化、继承、泛型和多态

第3章 泛化.继承.泛型和多态 小小的荣耀也正是这样被更大的光荣所掩.国王出巡的时候,摄政的威权未尝不就像一个君主,可是一到国王回来,他的威权就归于乌有,正像溪涧中的细流注入大海一样.--<威尼斯商人>,莎士比亚图灵机的基本操作在应用中十分通用,这是硬件开发者的福音,但是仅仅通过基本操作构建程序是非常枯燥的.大多数与语言和建模相关的主要进步在于对抽象构造的替代,这使抽象构造对于图灵指令常见的组合更加简洁.这种大幅度的替代开始于BAL为特定的0.1组合建立替代指令助记符,通过在3GL中添加过程.

《Swift开发实战》——第2章,第2.2节简单值

2.2 简单值 在Swift语言中,使用关键字"let"来声明常量,使用关键字"var"来声明变量.对于一个Swift常量值来说,在编译时并不需要有一个明确的值,但是只能为这个常量赋值一次.也就是说,可以用常量来表示一个只需要决定一次但是需要使用很多次的值.例如,在本章前面的实例2-1中,如下都是声明常量值的实现代码. var value=123; var i:Int = 0; var num=0; 常量或者变量的类型必须和赋给它们的值一样,在进行声明操作时,可以选

《Swift开发实战》——第1章,第1.4节启动iOS 8模拟器

1.4 启动iOS 8模拟器 Xcode是一款功能全面的应用程序,通过此工具可以轻松输入.编译.调试并执行Swift程序.如果想在Mac上快速开发iOS应用程序,则必须学会使用这个强大的工具的方法.接下来将简单介绍使用Xcode编辑启动模拟器的基本方法. (1)Xcode位于"Developer"文件夹内中的"Applications"子文件夹中,快捷图标如图1-48所示. (2)启动Xcode 6后的初始界面如图1-49所示,在此可以设置创建新工程还是打开一个已存

《Swift开发实战》——第2章,第2.4节函数和闭包

2.4 函数和闭包 在本章前面的实例2-1中,testfunc就是一个函数.在Swift语言中,使用关键字func来声明一个函数,使用名字和参数来调用函数,使用"→"来指定函数返回值.例如,如下所示的演示代码. func greet(name: String, day: String) -> String { return "Hello \(name), today is \(day)." } greet("Bob", "Tues

《Swift开发实战》——第2章,第2.3节流程控制

2.3 流程控制在本章前面的实例2-1程序中,下面这些都是实现流程控制工作的实现代码. switch("abc") { case "123": println("123"); case "456","abc": println("123 abc "); default: println("没有找到合适的匹配"); } var i:Int = 0; while( i&l