Swift中的方法

2019-06-28  本文已影响0人  盖小聂

1、func的参数修饰
2、default参数
3、可变参数函数
4、方法嵌套
5、Selector
6、实例方法的动态调用

1、func的参数修饰
func incrementor(inout variable: Int) {    
varialbe += 1
}
var luckyNumber = 7
incrementor(&luckyNumber)
2、default参数
func sayHello1(str1: String = "Hello", str2: String, str3: String) {
    print(str1 + str2 + str3)
}
func sayHello2(str1: String, str2: String, str3: String = "World") {
    print(str1 + str2 + str3)
}
sayHello1(str2: " ", str3: "World")
sayHello2(str1: "Hello", str2: " ")
3、可变参数函数
func sum(input: Int…) —> Int 
{    
//…
}

输入的input在函数体内部将被作为数组[Int]来使用,让我们来完成上面的方法吧:

func sum(input: Int…) —> Int 
{    
return input.reduce(0, combine: +)
}
print(sum(1,2,3,4,5))
func myFunc(numbers: Int…, string: String) 
{    
  numbers.forEach {        
    for i in 0..<$0 {            
    print(“\(i+1):\(string)”)        
        }    
    }
}
myFunc(1,2,3, string: “hello”)
extension NSString {    
convenience init(format: NSString, _ args: CVarArgType…)    
//…
}
let name = “Tom”
let date = NSDate()
let string = NSString(format: “Hello %@. Date: %@”,name,date)
4、方法嵌套
5、Selector
private func callMe() {
//…
}
NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: “callMe”, userInfo: nil, repeats: true)
6、实例方法的动态调用
class MyClass {
  func method(number: Int) —> Int {
    return number + 1
  }
}
//Swift中可以直接用Type.instanceMethod的语法来生成一个可以柯里化的方法,
//如果我们观察f的类型(Alt + 单击),可以知道它是:f: (MyClass) —> (Int) —> Int
let f = MyClass.method
let object = MyClass()
let result = f(object)(1)
上一篇 下一篇

猜你喜欢

热点阅读