swift 重载 泛式 inout的使用
swift 重载 泛式 inout的使用
函数
func 关键字 -> 表示返回值信息等等
那我们接下来利用函数做几件事情
-a 比较两个数字的大小
-b 比较两个字符串
-c 既能比较字符串,又能比较数字
a情况
func checkedAreEqual(Value : Int,Expected :Int, Message :String)
{
if Value != Expected
{
print(Message)
}
}
b情况
// 函数名相同可以 返回值不同可以同时存在
// 比较两个字符串
func checkedAreEqual(Value : String, Expected :String, Message :String)
{
if Value != Expected
{
print(Message)
}
}
checkedAreEqual(1, Expected: 2, Message: "Not Equal")
//
checkedAreEqual("cat", Expected: "dog'", Message: "Not Equal")
c情况
func checkedAreEqual<T:Equatable>(Value : T, Expected :T, Message :String)
{
if Value != Expected
{
print(Message)
}
}
特殊之处就在于这个Equatable
inout
//inout 修饰的传递的是地址
// 默认是 let
// 改成var 就是常量
// 在 let 位置修改下 inout
//func square (let numer:Double)
//{
// // use of unresolved identiifer 'number'
// number = number * number
//}
func square (inout number:Double)
{
number = number * number
}
总之
1.swift 中 重载 传递的参数类型不同也可以重载
2.范式可以更好的兼容数据类型,利于不同类型数据的比较
3.inout 可以再 一个没有返回值的函数 修改该函数的形参
注意传递进去的时候要 写上&,inout就像是告诉编译器哥们 我穿的是地址 ,有点址传递的味道了,swift 确实很高级··
swift 重载 泛式 inout的使用的更多相关文章
- [译] Swift 的响应式编程
原文 https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-3/Swift的响应式编程.md 原文链接 : Reactiv ...
- 数据库 SQL :数据库三大泛式简谈
相信,在学习数据库知识时,大家都会碰到这个概念问题:数据三大泛式,同时,在面试过程中,可能大部分面试官也会提及这个问题. 首先,看看维基百科对于三大泛式的定义: 数据库规范化,又称数据库或资料库的正规 ...
- iOS开发--Swift RAC响应式编程初探
时间不是很充足, 先少说点, RAC的好处是响应式编程, 不需要自己去设置代理委托, target, 而是主要以信息流(signal), block为主, 看到这里激动吧, 它可以帮你监听你的事件, ...
- iOS开发--Swift RAC响应式编程
时间不是很充足, 先少说点, RAC的好处是响应式编程, 不需要自己去设置代理委托, target, 而是主要以信息流(signal), block为主, 看到这里激动吧, 它可以帮你监听你的事件, ...
- C++练习 | 模板与泛式编程练习(2)
#include <iostream> #include <cmath> #include <cstring> #include <string> #i ...
- [Swift]LeetCode1023. 驼峰式匹配 | Camelcase Matching
A query word matches a given pattern if we can insert lowercase letters to the pattern word so that ...
- Swift 实践篇之链式 UI 代码
https://blog.nswebfrog.com/2017/10/20/swift-practice-ui-chaining-code/
- C++练习 | 模板与泛式编程练习
#include <iostream> #include <cmath> #include <cstring> #include <string> #i ...
- C++ 运算符重载三(链式编程)
//运算符重载之链式编程 #include<iostream> using namespace std; //对于友元函数重载运算符只适用于左操作数是系统变量的场景 //因为成员无法在系统 ...
随机推荐
- IOS制作一个漂亮的登录界面
上图是Facebook的登录界面,看起来很漂亮,eamil框和passwod框合在一起,那么这种效果是怎么做出来的呢?我们都知道输入框用layer属性是可以做成圆角的形式,那么怎么样才能够仅仅只让上边 ...
- C#解析JSON几种方式-整理
一.什么是JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition ...
- [Struts2学习笔记] -- 输入校验
Struts2可以对客户端的输入进行校验,通过重写ActionSupport的validate方法来实现,具体如下: 首先通过用struts标签库创建一个form表单,表单中控件的name与actio ...
- RAID磁盘阵列0、1、5、10
raid0:(又称为Stripe或Striping--分条) (一句话:raid0 用多个磁盘串联起来成一个大磁盘,容量为几个的总和.优点:容量大,速度快.缺点:数据不安全) 即Data Stripp ...
- Android数据库升级、降级、创建(onCreate() onUpgrade() onDowngrade())[4]
数据库版本升级对软件的管理操作. 我们手机经常会收到xxx软件升级什么的提醒,你的软件版本更新,同时你的数据库对应的版本也要相应的更新. 数据库版本更新需要主要的问题: 软件的1.0版本升级到1.1版 ...
- iOS自定义的UISwitch按钮
UISwitch开关控件 开关代替了点选框.开关是到目前为止用起来最简单的控件,不过仍然可以作一定程度的定制化. 一.创建 UISwitch* mySwitch = [[ UISwitchalloc] ...
- 将MYSQL查询导出到文件
sql文件: set names utf8; select * from xxxxx mysql命令: mysql .sql .txt
- logstash 处理tomcat catalina.out
input { file { type => "zj_api" path => ["/data01/applog_backup/zjzc_log/zj-api ...
- 浅谈SQL Server中的快照
原文地址:http://www.cnblogs.com/CareySon/archive/2012/03/30/2424880.html 简介 数据库快照,正如其名称所示那样,是数据库在某一时间点的视 ...
- HDU 4604 Deque 最长子序列
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4604 Deque Time Limit: 4000/2000 MS (Java/Others) ...