192.168.1.1-路由器设置 | 192.168.0.1-无线路由器设置

学习 Swift 编程语言的实例方法

发布时间:2015-03-20 10:04

一、使用复合swift的规范的命名
        苹果公司推出的swift编程语言的方法是在枚举、结构体或类中定义的函数,因此我们之前介绍的函数基本知识适用于方法,方法是具有面向对象的特点,方法是是具有面向对象的特点,与属性类似,方法可以分为:实例方法和静态方法;

        实例方法与实例属性相似,都隶属于枚举、结构体或类的个体,即实例,通过实例化这些类型,创建实例,使用实例调用的方法
         class Account {
                var amount:Double = 1000.0
                var owner:String = " "
                func interestWithRate(rate:Double)->Double{
                                        return rate * amount
                    }
}


            var myaccount = Account()
             println(myaccount.interestWithRate(0.88))
            在Swift中,方法和函数主要区别如下:
    (1)、方法的调用前面要有主体,而函数不需要;
     (2)、方法是在枚举、结构体或类内部定义的;
      (3)、方法命名规范与函数不同;

1、Swift和Object-C语言的规范

        目前苹果为IOS和MAC OS X应用开发的提供的开发语言为swift和object-c,

2、SmallTalk 语法风格的多重参数

        Object-C中的方法命名遵循了SmallTalk 语法风格,它将一个方法名分成几个部分,成为多重参数,假设定义一个按照索引插入对象到集合里的一个方法,

        (1)方法名中使用介词:swift方法的名称通常用一个介词(with,for,by)指向方法中的第一个参数;
      (2)使用外部参数名。从第二个参数后,可以指定外部参数名
      (3)省略外部参数名。如果没有指定外部参数名,会将本地参数名作为外部参数名,在函数中要在本地的参数名前加"#",而方法不需要

3、示例

  class Employee{
            var no:Int = 0
            var name:String = ""
            var job:String?
            var salary:Double = 0
            var depet:Department?
    
}
    class Department{
            var no:Int = 0
            var name:String = ""
            var Employees:[Employee] = [Employee]()
            
            func insertWithObject(anObject:AnyObject,atIndex index:Int)->(){


                    let emp = anObject as Employee//将类型AnyObject强制转化为Employee类型
                    employees.insert(emp,atIndex:index)                   
}
}

        var dept = Department()
        
        var emp1 = Employee()
        dept.insertWithObject(emp1,atIndex:0)
        
        var emp2 = Employee()
        dept.insertWithObject(emp2,atIndex:0)
        
        var emp3 = Employee()
        dept.insertWithObject(emp3atIndex:0)
        
        println(dept.employees.count)

二、结构体和枚举方法变异

        结构体和枚举中的方法默认情况下是不能修改属性的,将之前的Department修改为结构体,代码如下:

 struct Department{
            var no:Int = 0
            var name:String = ""
            var Employees:[Employee] = [Employee]()
            
            func insertWithObject(anObject:AnyObject,atIndex index:Int)->(){
                    let emp = anObject as Employee//将类型AnyObject强制转化为Employee类型
                    employees.insert(emp,atIndex:index)  //编译错误                 
}
}
        如果要修改,需要将方法声明为变异的(mutating),修改方法声明如下:
mutating func insertWithObject(anObject:AnyObject,atIndex index:Int)->()

关于我们 - RSS地图 - 最近更新 - 友情链接 - 网站地图 - 版权声明