• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift - 产生不重复数字的随机数生成器

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在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

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
No such module ‘xxx‘ with cocoapods and swift发布时间:2022-07-13
下一篇:
Swift入门篇-结构体发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap