zoukankan      html  css  js  c++  java
  • Swift

    在Swift中,可以使用函数类型的参数,也可以使用函数类型的返回值。而作为返回值的函数,还能“捕获”外部的值,并多次使用它。这个特性,常可用来创建各种生成器。 


    下面通过创建一个“随机数生成器函数”作为演示: 
    在指定范围内生成随机数,同时每次生成的随机数都不重复。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    //随机数生成器函数
    func createRandomMan(start: Int, end: Int) ->() ->Int! {
        //根据参数初始化可选值数组
        var nums = [Int]();
        for i in start...end{
            nums.append(i)
        }
         
        func randomMan() -> Int! {
            if !nums.isEmpty {
                //随机返回一个数,同时从数组里删除
                let index = Int(arc4random_uniform(UInt32(nums.count)))
                return nums.removeAtIndex(index)
            }else {
                //所有值都随机完则返回nil
                return nil
            }
        }
         
        return randomMan
    }
     
    //使用
    var random1 = createRandomMan(1,100)
    random1() // = 5
    random1() // = 87
     
    var random2 = createRandomMan(2,5)
    random2() // = 4
    random2() // = 2
    random2() // = 3
    random2() // = 5
    random2() // = nil
  • 相关阅读:
    换种方式思考问题
    win7 下的open live writer代码插件
    vue-todolist
    vue-新建项目出错情况分析
    vue新建项目
    AJAX(一、基本知识)
    2016年度工作总结
    常看常遇见之一——BS架构VS CS架构
    thinkjs——session
    关于Listener
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4844226.html
Copyright © 2011-2022 走看看