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的使用的更多相关文章

  1. [译] Swift 的响应式编程

    原文  https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-3/Swift的响应式编程.md 原文链接 : Reactiv ...

  2. 数据库 SQL :数据库三大泛式简谈

    相信,在学习数据库知识时,大家都会碰到这个概念问题:数据三大泛式,同时,在面试过程中,可能大部分面试官也会提及这个问题. 首先,看看维基百科对于三大泛式的定义: 数据库规范化,又称数据库或资料库的正规 ...

  3. iOS开发--Swift RAC响应式编程初探

    时间不是很充足, 先少说点, RAC的好处是响应式编程, 不需要自己去设置代理委托, target, 而是主要以信息流(signal), block为主, 看到这里激动吧, 它可以帮你监听你的事件, ...

  4. iOS开发--Swift RAC响应式编程

    时间不是很充足, 先少说点, RAC的好处是响应式编程, 不需要自己去设置代理委托, target, 而是主要以信息流(signal), block为主, 看到这里激动吧, 它可以帮你监听你的事件, ...

  5. C++练习 | 模板与泛式编程练习(2)

    #include <iostream> #include <cmath> #include <cstring> #include <string> #i ...

  6. [Swift]LeetCode1023. 驼峰式匹配 | Camelcase Matching

    A query word matches a given pattern if we can insert lowercase letters to the pattern word so that ...

  7. Swift 实践篇之链式 UI 代码

    https://blog.nswebfrog.com/2017/10/20/swift-practice-ui-chaining-code/

  8. C++练习 | 模板与泛式编程练习

    #include <iostream> #include <cmath> #include <cstring> #include <string> #i ...

  9. C++ 运算符重载三(链式编程)

    //运算符重载之链式编程 #include<iostream> using namespace std; //对于友元函数重载运算符只适用于左操作数是系统变量的场景 //因为成员无法在系统 ...

随机推荐

  1. Boost使用笔记(Smart_ptr)

    我是Word写的,复制过来实在懒得在排版了,有兴趣的朋友可以去我的百度文库看,谢谢 http://wenku.baidu.com/view/34e485e2f61fb7360b4c653e.html ...

  2. tornado项目

    tornado项目之基于领域驱动模型架构设计的京东用户管理后台 本博文将一步步揭秘京东等大型网站的领域驱动模型,致力于让读者完全掌握这种网络架构中的“高富帅”. 一.预备知识: 1.接口: pytho ...

  3. 【Git】Git教程

    http://www.liaoxuefeng.com/

  4. CMOS和TTL的區別

    TTL電路是晶體管-晶體管邏輯電路的英文縮寫(Transister-Transister-Logic ),是數字集成電路的一大門類.它采用雙極型工藝制造,具有高速度低功耗和品種多等特點. CMOS是: ...

  5. KEIL, a Smart Comliler

    KEIL是一个神的编译器.举一二例来说明: 1. 编译器出现WARNING"expression with possibly no effect",是提示你当前语在正做无用功,如在 ...

  6. 【HDOJ】1314 Numerically Speaking

    学了几天的Java了,终于独立A了一道大数计算.感觉还得练Java啊. import java.util.Scanner; import java.math.BigInteger; import ja ...

  7. <<开源硬件创客 15个酷应用玩转树莓派>>

    本书共分18章,前3章是本书的基础章节,主要介绍了树莓派的一些基本情况和基本操作,来让读者了解树莓派的前世今生,掌握树莓派基本的使用方法.第4~18章主要介绍15个以树莓派为载体的酷炫应用,大家可以按 ...

  8. Ubuntu 14.04 升级后 VPN 无法连接的问题

    如果不知道怎么配置 VPN Server(IPSEC + L2TP),可以看这篇文章(英文). 问题表现: 将 Ubuntu 12.04 通过自动更新 —— do-release-upgrade —— ...

  9. y combinator 做的一个调查_可以学习一下

    RoR: 在网络营运平台企业中,RoR站稳使用率第一的位置.其用户包括:ZenPayroll (人力资源).Asile50 (零售平台).BackerKit (众筹平台).Rainforest (QA ...

  10. 【转】(DT系列四)驱动加载中, 如何取得device tree中的属性

    原文网址:http://www.cnblogs.com/biglucky/p/4057488.html 本文以At91rm9200平台为例,从源码实现的角度来分析驱动加载时,Device tree的属 ...