当前位置 : 主页 > 手机开发 > harmonyos >

swift学习笔记之--方法

来源:互联网 收集:自由互联 发布时间:2023-08-25
一、说明 跟oc一样,面向对象,swift重点额方法可以分为2大类: (1)实例方法 oc中为减号方法(对象方法) (2)类型方法 oc中的加号方法(类方法) 二、实例方法 只能是对象调用的

一、说明

跟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=jack,age=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)

 

 

 


作者:稻草人11223


上一篇:swift - UISegmentedControl 的用法
下一篇:没有了
网友评论