精华内容
参与话题
问答
  • 函数是第一等类型,解释:一等函数:将函数像值一样传递被称为“一等函数(first order functions)) 这意味着函数可以作为另一个函数的返回值。 func makeIncrementer() -> ((Int) -> Int) {  func addOne...


    函数是第一等类型,解释:一等函数:将函数像值一样传递被称为“一等函数(first order functions))


    1丶函数可以作为另一个函数的返回值。

    func makeIncrementer() ->((Int) -> Int) {
         func addOne(number: Int) -> Int {
             return 1 + number
         }
         return addOne
     }

    初始化当前函数,increment为当前函数的返回值,也是一个函数

     var increment = makeIncrementer()
    

    increment函数中传入值

    let result = increment(7)

    结束

    print(result)
    

    2丶函数也可以当做参数传入另一个函数。

    func hasAnyMatches(list:[Int], condition:(Int) -> Bool) ->Bool {
                for item in list {
                    if condition(item) {
                        return true;
                    }
                }
                return false;
            }
     func lessThanTen(number: Int) ->Bool {
           return number < 10
     }
     let number = [8, 9, 10, 11]
     let result = hasAnyMatches(list: number, condition: lessThanTen)
    

    执行顺序:先遍历 number item,在将item传入第二个函数 condition获取结果

     print(result)
    



    展开全文
  • 因此可以像任何其它类型一样,将函数作为参数传递给其它的函数。 2. 首先定义一个函数,它拥有两个整型的参数,和一个整型的返回值。 3. 该函数用来计算两个数值的和,所以在函数的末尾,返回两个参数的和。 4. ....

    原文:http://coolketang.com/staticCoding/5a992500d50eee2ea3036b52.html

    1. 每个函数都是有类型的,包括函数的参数类型和返回类型。因此可以像任何其它类型一样,将函数作为参数传递给其它的函数。 



    2. 首先定义一个函数,它拥有两个整型的参数,和一个整型的返回值。 


    3. 该函数用来计算两个数值的和,所以在函数的末尾,返回两个参数的和。 


    4. 定义另一个函数,它也拥有两个整型的参数,和一个整型的返回值。 


    5. 该函数用来获得两个参数中的较大的值,所以在函数的末尾,比较并返回较大的值。 


    6. 定义第三个函数,该函数拥有三个参数,第一个参数的类型是函数,该类型拥有两个整型参数和一个整型的返回值(Int,Int)->Int,开发者可以传入任何此种类型的函数作为参数。 


    7. 在第三个函数的代码块中,调用作为函数的第一个参数,并使用第二和第三个参数,作为被调用函数的两个参数。 


    8. 调用第三个函数,并使用第一个函数的名称,作为被调用函数的第一个参数,同时设置第2个和第3个参数。从右侧的结果可以看出,函数被正确调用。


    9. 使用第二个函数的名称,作为被调用函数的第一个参数,同时设置第2个和第3个参数。从右侧的结果可以看出,函数被正确调用。 


    10. 接着在列表中点击鼠标右键,打开选项菜单。 


    11. 选择菜单中的查看历史值选项。 


    12. 从结果列表中可以看出,第一个函数和第二个函数分别被执行,并依次输出了5和3两个结果。再次点击右侧的显示结果图标,隐藏输出的内容。 


    13. 最后点击底部的显示调试区图标,打开控制台并观察日志的输出。 


    14. 


    15. 


    本文整理自:《Swift4互动教程》,真正的[手把手]教学模式,用最快的速度上手iOS开发和Swift语言,苹果商店App Store免费下载:https://itunes.apple.com/cn/app/id1320746678,或扫描本页底部的二维码。课程配套素材下载地址:资料下载


    展开全文
  • swift基础视频教程

    千人学习 2015-12-30 16:14:11
    Swift,苹果于2014年苹果开发者大会发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。 Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力...
  • 原创文章,欢迎转载。...有的时候就是要将一个值类型参数以引用方式传递,这也是可以实现的,Swift提供的inout关键字就可以实现。看下面的一个示例:func increment(inout value:Double, amount:Double = 1
    


    原创文章,欢迎转载。转载请注明:关东升的博客

     

    参数的传递引用

    类是引用类型,其他的数据类型如整型、浮点型、布尔型、字符、字符串、元组、集合、枚举和结构体全部是值类型。

    有的时候就是要将一个值类型参数以引用方式传递,这也是可以实现的,Swift提供的inout关键字就可以实现。看下面的一个示例:

    func increment(inout value:Double, amount:Double = 1.0) {
    
        value += amount
    
    }
    
     
    
    var value : Double = 10.0 
    
     
    
    increment(&value)
    
    print(value)
    
     
    
    increment(&value, amount:100.0)
    
    print(value)
    



    代码increment(&value)是调用函数increment,增长量是默认值,其中&value(在变量前面加&符号,取出value地址)是传递引用方式,它在定义函数时,参数标识与inout是相互对应的。

    代码increment(&value,amount:100.0)也是调用函数increment,增长量是100.0

    上述代码输出结果如下:

    11.0

    111.0

     

    欢迎关注关东升新浪微博@tony_关东升。
    关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
     

    更多精品iOSCocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
    智捷课堂论坛网站:http://51work6.com/forum.php

    展开全文
  • 转载请注明:关东升的博客 函数的语法格式如下: func 函数名(参数列表) -> 返回值类型 { 语句组 return 返回值}关键字是func。多个参数列表之间可以用逗号(,)分隔,也可以没有参数。使用箭头“->”指示返回值...
    


    原创文章,欢迎转载。转载请注明:关东升的博客

     

    函数的语法格式如下:

    func 函数名(参数列表) -> 返回值类型 {

        语句组

        return 返回值

    }

    关键字是func

    多个参数列表之间可以用逗号(,)分隔,也可以没有参数。

    使用箭头“->”指示返回值类型。返回值有单个值和多个值。如果函数没有返回值,则“-> 返回值类型”部分可以省略。

    如果函数有返回值,就需要在函数体最后使用return语句;如果没有返回值,则函数体中可以省略return语句。

    函数定义示例代码如下:

    funcrectangleArea(width:Double, height:Double) -> Double {

        let area = width * height

        return area   

    } 

    print("320x480的长方形的面积:\(rectangleArea(320, height:480))") 

    传递参数 

    介绍几种不同形式的参数。 

    1. 使用外部参数名

    为每个参数提供一个可以在函数外部使用的名称,称为外部参数名,修改rectangleArea函数的定义如下:

    func rectangleArea(Wwidth:Double, H height:Double) -> Double {

        let area = width * height

        return area

    }

    在局部参数名之前给一个“外部参数名”,用空格分隔。定义代码中的WH就是外部参数名。调用代码如下:

    print("320x480的长方形的面积:\(rectangleArea(W:320, H:480))")

    如果我们提供了外部参数名,那么在函数调用时,必须使用外部参数名,所以WH不能省略。 

    1. 省略外部参数名

    Swift 2.0提供省略外部参数名可能,在定义函数时,使用下划线(_)表示外部参数名,示例代码如下:

    funcrectangleArea(width:Double, _ height:Double) -> Double {

        let area = width * height

        return area

    }

    这样函数在调用时就可以省略外部参数名,代码如下:

    print("320x480的长方形的面积:\(rectangleArea(320, 480))")

    在定义函数时第一个参数不需要使用下划线(_),默认第一个参数名是省略的,其他参数名要想省略则需要使用下划线(_)符号。 

    1. 参数默认值

    在定义函数的时候可以为参数设置一个默认值,当调用函数的时候可以忽略该参数。看下面的一个示例:

    func makecoffee(type :String = "卡布奇诺") -> String {

        return "制作一杯\(type)咖啡。"

    }

    在调用的时候,如果调用者没有传递参数,则使用默认值。调用代码如下:

    let coffee1 = makecoffee("拿铁")

    let coffee2 = makecoffee()  

    最后输出结果如下:

    制作一杯拿铁咖啡。

    制作一杯卡布奇诺咖啡。 

    1. 可变参数

    Swift中函数的参数个数可以变化,它可以接受不确定数量的输入类型参数,它们具有相同的类型。我们可以通过在参数类型名后面加入(...)的方式来指示这是可变参数。

    下面看一个示例:

    func sum(numbers:Double...) -> Double {

        var total: Double = 0

        for number in numbers {

            total += number

        }

        return total

    }

    下面是两次调用sum函数代码:

    sum(100.0, 20, 30)

    sum(30, 80)

    可以看到每次传递参数的个数是不同的。

     

     

    欢迎关注关东升新浪微博@tony_关东升。
    关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
     

    更多精品iOSCocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
    智捷课堂论坛网站:http://51work6.com/forum.php

    展开全文
  • swift有两种参数传递方式

    千次阅读 2018-11-14 22:36:45
    1.值传递传递的是参数的一个...在Swift众多数据类型中,只有class是指针传递,其余的如Int,Float,Bool,Character,Array,Set,enum,struct全都是值传递. 让值传递以指针方式传递 有时候我们需要通过一个函数改变...
  • 在之前的OC中我们会经常在一个方法中使用BLOCK回调 来达到数据回传和 执行某些操作 ...1、首先我们定义一个包含闭包的函数,并在这个闭包中给回掉的闭包带上我们要传递的数据func blocData(resource:(content:Str
  • swift函数式编程实际是非常灵活的,在函数的高级应用中,实际上还包括了闭包,协议,泛型等等oc中没有的概念,按照顺序介绍这些概念和应用。 一:闭包 闭包实际就是objective-c中的block,其实际就是定义一个函数...
  • (1)一般默认在函数中定义的参数都是常量参数,也就是这个参数你只可以查询使用,不能改变它的值。...(3)一般默认的参数传递都是传值调用的,而不是传引用。 所以传入的参数函数内改变,并不影
  • 外部参数名用来标记传递函数调用的参数,本地参数名在实现函数的时候使用。 一般情况下,第一个参数省略其外部参数名,第二个及以后的参数使用其本地参数名作为自己的外部参数名。所有参数需要有不同的本地参数...
  • Swift_3.0 相对于 Swift_2.2 版本发生了哪些的变化。本文件将以最直观的代码对比以及文字分析阐述。
  • 本人最近开始学习有关Swift这个新东东,由于没有项目支撑,只能通过官方文档进行自学,精简的看了Swift官方文档,感觉理解起来还是比较简单,于是突发奇想,想把官方object-c的sample进行改造,使用Swift完成重点...
  • Swift学习笔记 - Swift属性只读

    千次阅读 2016-10-30 19:51:47
    在OC中我们经常用到只读属性,用readonly修饰一下就行了,但在Swift中已经不是这样修饰的了,下面记录一下Swift中只读属性的使用 在OC中的只读://只读属性 @property(readonly, nonatomic) NSObject *wcl;在Swift中...
  • 完美解决swift代码不能自动提示和补全
  • 原文:http://www.coolketang.com/staticCoding/5a9923b4ac502e5d51cb3dc6.html1. Playground是苹果推出的一款用来学习、演示Swift语言的实用工具,本节课将为您演示它的使用方法。首先点击欢迎面板中的[以...
  • 完美解决swift数组索引是变量时的内存溢出
  • ios swift 实现饼状图进度条 // // ProgressControl.swift // L02MyProgressControl // // Created by plter on 7/29/14. // Copyright (c) 2014 jikexueyuan. All rights reserved. // import UIKit class ...
  • Swift——(五)Swift中的那些默认值

    千次阅读 2014-06-23 22:59:21
    AlienTech for better life!~
  • 第一种 for 循环方式 第二种 for in方式 第三种 索引-值方式enumerate()第一种 for循环方式 let arr:Array<Int> = [1,2,3,4,6,7,8,9,22] let legh = arr.count for var i = 0;i <...
  • Swift快速入门(一)第一个Swift程序

    万次阅读 2016-01-23 14:30:02
    本系列只是一个Swift快速入门的教程,并没有详尽的介绍SwiftSwift也并不是一个简单的编程语言,所以要想详尽的系统的学习Swift,本系列并不适合你,此系列只是让开发者可以快速的用Swift来进行开发。另外学习本...
  • swift3.0之后,GCD的语法发生了翻天覆地的变化,从过去的c语法变成了点语法,下面是变化之后用GCD实现计时器的方法: 先贴代码:// 定义需要计时的时间 var timeCount = 60 // 在global线程里创建一个时间源 let ...
  • Swift——(三)Swift中下划线的妙用

    万次阅读 2014-06-13 21:39:52
    AlienTech for better life!~
  • Swift的开发环境可以使用苹果平台(OS X)或Linux系统(Ubuntu),这里介绍在我在Ubuntu 14 server下安装Swift运行环境的过程1、安装所需的依赖项$ sudo apt-get install clang libicu-dev我是先安装的clang,中间会...
  • 既然讲的是Swift和OC的混合编程,我的上一篇博客《》
  • 在iOS应用的开发中,Swift必将取代OC,两者的趋势是“短期共存,长期取代”。但以前有太多的代码是用OC语言完成的,而Swift的开发也从 OC中继承了很多的特性,两者也是有很多的类似之处。目前Swift和OC可以实现无缝...
  • double的格式化输出 例如保留两位小数//Double的延展 extension Double { func format(f: String) -> String { return String(format: "%\(f)f", self) } } let b:Double = 1.2568 ...
  • AlienTech for better life!~
  • 通过博客的方式来记录自己的学习Swift过程,同时把学习的内容分享给大家,希望能为你提供一点帮助
  • 微信的摇一摇功能想必大家都用过,过年的时候抢红包也没少摇吧,那么用swift语言如何实现这么酷炫的功能呢。摇动属于IOS内置可识别的一种动作,在你需要实现摇动功能的viewcontroller中,在viewDidLoad方法中加入...
  • Swift Playground精讲

    万次阅读 2017-01-01 16:49:16
    对于Swift初学者来说,它简单易用,可以实时预览代码效果,非常适合学习Swift这门语言。在日常开发中,playground可以进行快速的原型开发和试错。当然,playground支持markup标注,用来Swift相关的书籍也不错。 基础...

空空如也

1 2 3 4 5 ... 20
收藏数 82,186
精华内容 32,874
关键字:

swift 函数传递参数