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
  • 相关阅读:
    C# DataSet导出Excel
    MVC学习十四:MVC 路由 Route
    【Ubuntu 16.04.2_64】安装配置SVN
    【Java Web开发学习】Spring MVC 使用HTTP信息转换器
    【Git】常用命令
    【Git】安装配置
    【Git】学习开始
    【JPA】映射
    【JPA】字段访问、属性访问及混合访问
    【JPA】注解@PostConstruct、@PreDestroy
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4844226.html
Copyright © 2011-2022 走看看