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
  • 相关阅读:
    nopcommerce商城系统--文档整理
    浏览器标签页显示图标
    SQL SERVER 查询语句学习:CHARINDEX
    NHibernate3.3.3 学习笔记1
    权限管理UML设计草图
    jquery UI 跟随学习笔记——拖拽(Draggable)
    Unity3d IOS中的IGUI控件
    Unity3d ngui基础教程
    unity3d 幻灯片效果实现
    unity3d 场景间数据传递
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4844226.html
Copyright © 2011-2022 走看看