• swift学习笔记之--方法


    一、说明

    跟oc一样,面向对象,swift重点额方法可以分为2大类:

        (1)实例方法

               oc中为减号方法(对象方法)

         (2)类型方法

               oc中的加号方法(类方法)

    二、实例方法

         只能是对象调用的方法

         代码示例:

    1 class Dog {
    2     func run() {
    3         println("Dog--->run")
    4     }
    5 }
    6 var d = Dog()
    7 d.run(

    说明:

    第2行定义了一个run方法

    第7行调用run方法:调用方法也跟调用函数很像,格式是“对象名.方法名(参数)”

    三、方法的参数

    方法和函数的参数有点区别,默认情况下

    方法的第1个参数名仅仅是局部参数名

    方法的其他参数名(除第1个参数名以外)既是局部参数名,又是外部参数名

    1 class Calculator {
    2     func sum(num1: Int, num2: Int) -> Int {
    3         return num1 + num2
    4     }
    5 }
    6 var c = Calculator()
    7 c.sum(10, num2: 20)

    说明:

    num1仅仅是局部参数名,num2既是局部参数名,又是外部参数名

    相当于func sum(num1: Int, #num2: Int) -> Int

    (2)可以在参数名前面加个下划线 _,去掉默认的外部参数名

    1 class Calculator {
    2     func sum(num1: Int, _ num2: Int) -> Int {
    3         return num1 + num2
    4     }
    5 }
    6 var c = Calculator()
    7 c.sum(10, 20)

    说明:num1、num2都仅仅是局部参数名,不是外部参数名

    (3)也可以给第1个参数增加外部参数名

    1 class Calculator {
    2     func sum(#num1: Int, num2: Int) -> Int {
    3         return num1 + num2
    4     }
    5 }
    6 var c = Calculator()
    7 c.sum(num1: 10, num2: 20)

    说明:num1、num2既是局部参数名,又是外部参数名

    四、类型方法

    1.什么是类型方法?

      被关键字class修饰的方法,也可以称为“类方法”

    1 class Calculator {
    2     class func sum(num1: Int, num2: Int) -> Int {
    3         return num1 + num2
    4     }
    5 }
    6 Calculator.sum(10, num2: 20)

    说明:

    第2行定义了一个类型方法

    类型方法的特点:直接用类调用类型方法,不能用对象调用类型方法

    第6行调用类型方法,格式是“类名.方法名(参数)”

    注意:类型方法和实例方法的方法名可以一样

    1 class Calculator {
     2     class func sum(num1: Int, num2: Int) -> Int {
     3         return num1 + num2
     4     }
     5     func sum(num1: Int, num2: Int) -> Int {
     6         return num1 + num2
     7     }
     8 }
     9 Calculator.sum(10, num2: 20)
    10 var c = Calculator()
    11 c.sum(10, num2: 20)

    说明:

    第2行定义的类型方法和第5行定义的实例方法:方法名一样

    第9行使用类调用类型方法

    第11行使用对象调用实例方法

    2.代码示例

    1 class Person {
     2     class func run() {
     3         println("class func run")
     4     }
     5     func run() {
     6         println("func run")
     7     }
     8     class func test() {
     9         self.run();
    10     }
    11     func test() {
    12         self.run();
    13     }
    14 }
    15 var p = Person()
    16 p.test()
    17 Person.test()

    函数的定义格式:

    func 函数名(形参列表) -> 返回值类型  {
         // 函数体...
     
    }

    注:形参列表和返回值类型可以是多个

     三、默认参数值

    func addStudent(name: String, age: Int = 20) {
         println("添加1个学生:name=(name),age=(age)")
    }

    addStudent("jack")

    age参数有个默认值20,所以第4行调用函数时可以不传值给age参数

    输出结果是:

    添加1个学生:name=jackage=20

    (2)带有默认参数值的形参,Swift会自动给它生成一个跟形参名相同的外部参数名

    age: Int = 20相当于#age: Int = 20

    因此,如果要传入age参数值时,只能这么调用

    addStudent("jack", age: 25)

    (3)在带有默认参数值的参数名前加个下划线 _ ,调用函数时就不用写外部参数名

    func addStudent(name: String, _ age: Int = 20) {
         println("添加1个学生:name=(name),age=(age)")
     }
     
     addStudent("jack", 25)

    (4)外部参数名的定义格式如下

    func 函数名(外部参数名 形式参数名: 形式参数类型) -> 返回值类型  {
           // 函数体...
    }

    外部参数名写在形式参数名的前面,与形式参数名之间用空格隔开,一旦定义了外部参数名,在调用函数时就必须加上外部参数名

    //定义了外部参数
    func sum(number1 num1: Int, number2 num2: Int) -> Int
    {
             return num1 + num2
        }
    sum(number1: 10, number2: 20) // 调用函数
    
    func addStudent(name:String,age:Int = 20) {
        print("添加1个学生:name = (name),age = (age)")
    }//在定义函数的时候,给形参指定一个默认值,调用函数时,就可以不用给这个形参传值
    
    addStudent("jack")
    
    func addStudent(name:String,_age:Int = 20) {
        print("添加1个学生:name = (name),age = (age)")
    }//带有默认参数值的参数名前价格下划线-,调用函数时就不用谢外部参数名了
    
    addStudent("hhggll", age: 9)

    转自:文顶顶的博客 http://www.cnblogs.com/wendingding/p/3887060.html,感谢顶顶大神!

  • 相关阅读:
    疫情数据背后,聊聊数据分析平台变迁史
    华为五大专家亲述:如何转型搞 AI?
    【华为云技术分享】LwM2M协议的学习与分享
    Spring5参考指南: BeanWrapper和PropertyEditor
    Spring5参考指南: Resources
    Spring5参考指南:事件Event
    Spring5参考指南:Environment
    Spring5参考指南:JSR 330标准注解
    Spring5参考指南:组件扫描
    Spring5参考指南:基于注解的容器配置
  • 原文地址:https://www.cnblogs.com/hero11223/p/5666663.html
Copyright © 2020-2023  润新知