Swift - 产生不重复数字的随机数生成器
2016-03-16 17:35
651 查看
在Swift中,可以使用函数类型的参数,也可以使用函数类型的返回值。而作为返回值的函数,还能“捕获”外部的值,并多次使用它。这个特性,常可用来创建各种生成器。
下面通过创建一个“随机数生成器函数”作为演示:
在指定范围内生成随机数,同时每次生成的随机数都不重复。
下面通过创建一个“随机数生成器函数”作为演示:
在指定范围内生成随机数,同时每次生成的随机数都不重复。
//随机数生成器函数 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 } import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() //使用 let random1 = createRandomMan(1,end: 100) print(random1()) print(random1()) print(random1()) let random2 = createRandomMan(2,end: 5) print(random2()) print(random2()) print(random2()) print(random2()) print(random2()) // print(random2()?) } }
相关文章推荐
- Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)
- Swift - 使用CGBlendMode改变UIImage颜色
- Swift - final关键字的介绍,以及使用场景
- Swift 学习之二十一:?和 !(详解)
- Swift - 实现单例模式
- Swift - 正则表达式的几种使用方式
- Swift - UISearchController初步学习
- Swift - 设置应用程序图标的提醒个数(右上角小红圈)
- Swift - iOS应用的国际化与本地化
- Swift - 实现发送邮件功能
- 在swift中使用oc文件
- Swift - 实现发送短信的功能
- Swift - 添加、修改、删除通讯录联系人
- 如何使用Instruments诊断App(Swift版)
- Swift - 读取通讯录信息
- Swift开发第五篇——四个知识点(Struct Mutable方法&Tuple&autoclosure&Optional Chain)
- 【游戏客户端开发】 IOS开发——Swift基础篇2
- 【游戏客户端开发】 IOS开发——Swift基础篇1
- Swift - 使用访问系统的通讯录交互界面
- swift单例模式