美文网首页
[Swift]使用区间作为函数的参数

[Swift]使用区间作为函数的参数

作者: 流火绯瞳 | 来源:发表于2016-11-24 11:14 被阅读127次

最近在一个查询数据库的方法里加上指定查询范围的参数时, 考虑使用Range类型,但在设置时,提示下面的错误:


即:

Reference to generic type 'Range' requires arguments in <...> 

根据提示添加相应的代码后:

这时有点懵逼了,里面的参数该怎么写呢? 原谅我没有这样使用过Range😭, 查了些资料也没找到相应的介绍, 本打算使用NSRange代替, 但是,既然swift中有这个类型,还是想使用这个类型.
就继续查资料... ...
后来,偶然发现,他是要你指定区间的类型, 也可以说是区间元素的类型, 直接给个整形** Int** :

这样就OK了!!!
其实,在我们设置数组类型或者字典类型时,也会遇到这种提示,只不过,那两个用的比较多,没想到Range还需要指定元素类型(不是只有整形嘛? 好吧, 那是其他语言, swift支持的格式比较多).

附加:

按照上面的参数设置,可以实现区间的功能,但是参数的构造只能是这样来获得实例 :

let range = Range(uncheckedBounds: (lower: 10, upper: 20))
// 调用方法
someObj.selectPart(range, fromTable: "table")

这样虽然能满足需求, 但是我更喜欢这样来设置区间:

let range = 10...20 

这样的话,上面的参数类型就不满足要求了,这时,可以这样设置:

func selectPart(_ range: CountableClosedRange<Int>, fromTable table: String) -> [LZDataModel]?

这样在调用的时候,就可以如下使用:

someObj.selectPart(10...20, fromTable: "table")

是不是很方便?

需要注意的是, 类型CountableClosedRange<Int>只能接收一个闭区间的参数,即: 10...20 这样的;
如果想使用前闭后开区间,即这样的: 10..<20,可使用CountableRange<Int>来修饰,上面的函数名称可修改为:

func selectPart(_ range: CountableRange<Int>, fromTable table: String) -> [LZDataModel]?
// 调用
someObj.selectPart(10..<20, fromTable: "table")

(完)

相关文章

  • [Swift]使用区间作为函数的参数

    最近在一个查询数据库的方法里加上指定查询范围的参数时, 考虑使用Range类型,但在设置时,提示下面的错误: 即:...

  • Swift学习笔记(二)

    Swift函数 Swift函数包含参数类型和返回值类型 函数定义 Swift使用关键字func定义函数。 函数定义...

  • 函数的内部参数名、外部参数名

    swift 中函数格式 在swift中,一个参数有两个名字:内部参数名、外部参数名。 内部参数名:在函数内部使用的...

  • Map Filter Reduce

    1 map函数 并不是swift标准库中为一个使用泛型的函数。 接受其他函数作为参数的函数有时被称为高阶函数。 m...

  • Flutter Dart 之 typedef定义函数

    使用typedef 定义一个回调函数,可以使用此函数作为其他函数的参数。 其他函数使用此定义的函数作为参数时:

  • Swift5.x-闭包(中文文档)

    引言 继续学习Swift文档,从上一章节:函数,我们学习了Swift函数相关的内容,如函数的定义和使用、函数参数、...

  • 函数的灵活性

    学习目的:Swift如何将函数作为参数使用,并且将函数当作数据,以完全类型安全的方式复制同样的OC功能 例子:Ob...

  • iOS开发 - 「Swift 学习」Swift 函数(函数参数名

    Swift 函数参数名称 函数参数都有一个外部参数名和一个局部参数名 局部参数名 局部参数名是在函数的实现内部使用...

  • JavaScript函数窥探

    JS的语法跟swift很像,以下代码有几个知识点: 函数的定义 匿名函数的使用,作为参数/返回值,和OC的bloc...

  • iOS开发 - 「Swift 学习」Swift 函数(函数类型定

    Swift 函数类型及使用 函数都有特定的函数类型,由函数的参数类型及返回类型组成 函数定义 使用关键字 func...

网友评论

      本文标题:[Swift]使用区间作为函数的参数

      本文链接:https://www.haomeiwen.com/subject/wysbpttx.html