Swift里的protocol--协议
我感觉它和java或go里的接口,差不多一个意思吧。
protocol FullyNamed {
var fullName: String { get }
}
struct Person: FullyNamed {
var fullName: String
}
class Starship: FullyNamed {
var prefix: String?
var name: String
init(name: String, prefix: String? = nil) {
self.name = name
self.prefix = prefix
}
var fullName: String {
return (prefix != nil ? prefix! + " " : "") + name
}
}
var ncc1701 = Starship(name: "Enterprise", prefix: "USS")
print(ncc1701.fullName)
let john = Person(fullName: "John Appleseed")
print(john.fullName)
protocol RandomNumberGenerator {
func random() -> Double
}
class LinearCongruentialGenerator: RandomNumberGenerator {
var lastRandom = 42.0
let m = 139968.0
let a = 3877.0
let c = 29573.0
func random() -> Double {
lastRandom = (lastRandom * a + c)
return lastRandom / m
}
}
let generator = LinearCongruentialGenerator()
print("Here's random number: \(generator.random())")
print("And another one: \(generator.random())")
protocol Togglable {
mutating func toggle()
}
enum OnOffSwitch: Togglable {
case Off, On
mutating func toggle() {
switch self {
case Off:
self = On
case On:
self = Off
}
}
}
var lightSwitch = OnOffSwitch.Off
lightSwitch.toggle()
print(lightSwitch)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Java-根据IP统计访问次数
本文简要介绍如何实现一个IP访问计数器。 为了简单, 使用 JSP 来实现, 但读者需要明白, Java代码可以在到处运行。 示例Demo页面: http://www.cncounter.com/test/counter.jsp 返回JSON: http://www.cncounter.com/test/counter.jsp?format=json 清空本IP的计数: http://www.cncounter.com/test/counter.jsp?action=clear 下面列出实现代码, 文档和说明就在代码中: 解析客户端IP的工具类 IPUtils.java : package com.cncounter.util.net; import javax.servlet.http.HttpServletRequest; /** * IP工具类 */ public class IPUtils { public static final String SEMICOLON = ";"; // Nginx代理传递的实际客户端 IP-header public static final ...
-
下一篇
java学习笔记--增强for循环
什么是增强for循环? 原来的for循环是这样子的: for(int i=0;i<10;i++) 那我们来看一下增强for循环: for(object a:x)//不只是object 数组存储的是什么类型的就填什么类型 x是数组或者集合 里面是Interator迭代器实现的 注意:遍历的时候不能用集合增删元素 只能通过迭代器进行操作 因为迭代器创建的时候会创建一个单链表 如果是通过集合来操作元素数量的话那么 实际的数量是变化了 可是迭代器创建的那个单链表却还是原来的样子 这样子 迭代器往下遍历的时候 就找不到实际的值 重点: 增强for循环的适用范围: 如果是实现了Iterable接口的对象或者是数组对象(包括int)都可以使用增强for循环。 //注意: Map集合没有实现Iterable接口,所以map集合不能直接使用增强for循环,如果需要使用增强for循环需要借助于Collection // 的集合。 HashMap<String, String> map = new HashMap<String, String>(); map.put("001"...
相关文章
文章评论
共有0条评论来说两句吧...