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; //对于友元函数重载运算符只适用于左操作数是系统变量的场景 //因为成员无法在系统 ...
随机推荐
- Boost使用笔记(Smart_ptr)
我是Word写的,复制过来实在懒得在排版了,有兴趣的朋友可以去我的百度文库看,谢谢 http://wenku.baidu.com/view/34e485e2f61fb7360b4c653e.html ...
- tornado项目
tornado项目之基于领域驱动模型架构设计的京东用户管理后台 本博文将一步步揭秘京东等大型网站的领域驱动模型,致力于让读者完全掌握这种网络架构中的“高富帅”. 一.预备知识: 1.接口: pytho ...
- 【Git】Git教程
http://www.liaoxuefeng.com/
- CMOS和TTL的區別
TTL電路是晶體管-晶體管邏輯電路的英文縮寫(Transister-Transister-Logic ),是數字集成電路的一大門類.它采用雙極型工藝制造,具有高速度低功耗和品種多等特點. CMOS是: ...
- KEIL, a Smart Comliler
KEIL是一个神的编译器.举一二例来说明: 1. 编译器出现WARNING"expression with possibly no effect",是提示你当前语在正做无用功,如在 ...
- 【HDOJ】1314 Numerically Speaking
学了几天的Java了,终于独立A了一道大数计算.感觉还得练Java啊. import java.util.Scanner; import java.math.BigInteger; import ja ...
- <<开源硬件创客 15个酷应用玩转树莓派>>
本书共分18章,前3章是本书的基础章节,主要介绍了树莓派的一些基本情况和基本操作,来让读者了解树莓派的前世今生,掌握树莓派基本的使用方法.第4~18章主要介绍15个以树莓派为载体的酷炫应用,大家可以按 ...
- Ubuntu 14.04 升级后 VPN 无法连接的问题
如果不知道怎么配置 VPN Server(IPSEC + L2TP),可以看这篇文章(英文). 问题表现: 将 Ubuntu 12.04 通过自动更新 —— do-release-upgrade —— ...
- y combinator 做的一个调查_可以学习一下
RoR: 在网络营运平台企业中,RoR站稳使用率第一的位置.其用户包括:ZenPayroll (人力资源).Asile50 (零售平台).BackerKit (众筹平台).Rainforest (QA ...
- 【转】(DT系列四)驱动加载中, 如何取得device tree中的属性
原文网址:http://www.cnblogs.com/biglucky/p/4057488.html 本文以At91rm9200平台为例,从源码实现的角度来分析驱动加载时,Device tree的属 ...