Swift函数

来源:互联网 发布:如何在淘宝上评价 编辑:程序博客网 时间:2024/05/21 09:51

//.函数


//函数的基本结构


//func函数名(参数列表) ->返回值类型


//1.有参数,单返回值

func sayHi(str : String) ->String {

    

    return str + "stwrt"

    

}

//调用

var ss = sayHi("eangyu")


//2.有参数,多返回值

//->()返回值是元组

//前面的括号是参数列表

func sayHello(name : String , age : Int , gender : String) ->(name : String , age : Int , gender : String) {

    

    return (name , age , gender)

    

}

var (wangname , wangage , wanggebder) = sayHello("wangyu", age: 12, gender: "namn")


wangage

wanggebder

wangname




//3.有参数,无返回值


func sayHI(age : Int) {

    

    print(age)

    

}

sayHI(520)



//4.无参数,无返回值


func say() {

    

  print(3000)

    

}


say()


//其他类型转字符串


//1.插入语法 "\()"


var n = 211


"\(n)afafag"


//2.String()


String(n) + ".jpg"


//3.闭包


//    {(参数列表) ->返回值类型 in代码段}

//

//let block = {(name : String) ->String in String ->String

//

//

//

//}


// ,


class Person {

    //属性

    //1.可以直接赋值

   //2.可以确定是否可以为空

    

    var name : String?

    var age : Int! = 100

    init(name : String , age : Int) {

        

        self.name = name

        self.age = age

        

    }

    

    func sayHi() {

        

        print(self.name)

        print(self.age)

        

    }

    deinit {

        

        //析构器 - dealloc释放资源

        

        

    }

    

}


//创建对象


var zhao = Person(name: "name", age: 12)


zhao.sayHi()


//结构体



struct Car {

    

    var name : String?

    var number : Int?

    

    init(name : String , number : Int) {

        self.name = name

        self.number = number

    }

}


//结构体和类的区别:

//相同点; 1.都有属性和方法,swift的结构体区别于c的结构体

//2.都有构造器


//不同;结构体不能被继承类可以


//子类;


class Student: Person {

    

    var name1 : String?

    var age1 : Int?

    

   //重写父类的初始化方法

    

   override init(name: String, age: Int) {

    

    super.init(name: name, age: age)

    

    sayHi()

    

    }

    

    class func stuname(name : String) {

        

        print(name)

        

    }

 }


Student.stuname("agag")



//协议 protocol协议名 {协议方法}


protocol myprotocol {

    

    func mackMoney() ->NSString

    

    

}



class Cat: Person, myprotocol {

    

    func mackMoney() -> NSString {

        

        return "$10000000"

        

    }

 }


var cat = Cat(name: "mao", age: 2)


cat.mackMoney()



0 0