有没有在Swift中编写范围类型的简写方法?

时间:2015-06-29 15:32:50

标签: swift

所以我对Swift的了解是,有一些方便的语法/速记方法可以定义某些类型,可以缩短函数中参数的类型。

e.g。一个数组,

func example(anArray: Array<Int>) {}

可以更容易编写

func example(anArray: [Int]) {}

或者使用字典

func example2(aDictionary: Dictionary<String, Int>) {}

可以更容易编写

func example2(aDictionary: [String: Int]) {}

我想知道是否有适用于某个范围的速记方式,或者以下是唯一的写入方式?用这种方式写它不是很长,我更加好奇!

func example3(aRange: Range<Int>) {}

2 个答案:

答案 0 :(得分:1)

编辑:

Range Operators仅用于创建范围,它们不用于定义类型。

如果你写

let arr  = [0, 1, 2]
let dict = [0:0, 1:1, 2:2]
let range= 0...2

并检查所有三个变量&#39;类型,用于:

  • arr您将获得let arr: [Int]
  • dict您将获得let dict: [Int : Int]
  • range您将获得let range: Range<Int>

这让我相信,在Swift中没有用于定义范围类型的简写。

答案 1 :(得分:0)

您可以使用以下范围。

var range = UInt32(1)...UInt32(100)

var range = UInt32(start)...UInt32(end)

我总是使用它来从指定范围内获取随机数。

func random(start:UInt32, end:UInt32) -> UInt32 {
    var range = UInt32(start)...UInt32(end)
    return range.startIndex + arc4random_uniform(range.endIndex - range.startIndex)
}