Swift基础学习中

来源:互联网 发布:面向对象语言 python 编辑:程序博客网 时间:2024/06/06 07:32

函数

在函数的定义中 参数列表中的参数默认是常量,如果想使用变量,需要在参数名前用var声明一下.

用inout 来修饰参数,参数就是一个输入输出的参数,调用函数时通过传引用的方式进行传参

嵌套函数 ,定义在其他函数体内,作用域最外层的大括号,如果在函数外调用就会出错,

func change(change:Bool) ->Int->Int {

   func chang1(num: Int)->Int {

       return num + 1

    }

    

   func change2(num: Int)->Int {

       return num - 1

    }

   return change ? chang1 :change2


闭包和c,和OC 中block一样也是一段封闭的代码块,就是一个匿名函数
/*
闭包的格式
{
(参数列表)->返回值类型
in
功能模块

}


*/


//去掉了参数的类型声明,可以根据传入的值的类型进行推断

隐式返回值;字符串指定从新定义了(>/<)的功能,传入两个字符串比较大小 并且返回bool值


//参数名称的缩写,在Swift自动为内敛函数提供缩写的功能, 通过$0$1来顺序调用参数

闭包的最贱形式 ;>本就是一个内敛函数

//尾随闭包;支持将闭包写在函数外,并且当做最后一个参数使用

枚举类型 在Swift中枚举的成员在被创建的时候是不会赋给一个默认值,不同于和OC

取得枚举值方式 

println(week.we.rawValue)

//类和结构体 在Swift中struct声明一个结构体,用class 声明一个类, 

//在Swift中的结构体里面可以定义方法,这是与OC最大的区别

struct Length {

   var start = 0.0

   var end = 0.0

   func getLength()->Double{

       return end -start

    }

}

//结构体是值类型 而类是引用类型 


//属性

1存储属性 存储常量或者变量作为实例的一部分来使用

2计算属性 

//计算属性不支持存储值,而是提供了一个getter来获取值,提供了一个可选的setter来设置值

struct Point {

   var x = 0.0

   var y = 0.0

    

}

struct Size {

   var width = 0.0

   var height = 0.0

    

}


struct Rect {

   var point = Point()

   var size = Size()

   var cender : Point{

       get{

          let centerx = size.width/2 +point.x

           let centery = size.height/2 +point.y

           return Point(x: centerx, y: centery)

        }

       set(newCenter) {

           point.x = newCenter.x -size.width /2

           point.y = newCenter.y -size.height /2

            

        }

    }

}

//结构体的成员 有构造器方发,类没有这种方法,
//类型属性,用结构体或者类的名字来直接调用,
//在结构体中用static声明类型属性
//在类中 用class关键字声明类型属性
//方法 定义在结构体和类里面的函数叫做方法
//实例方法 通过结构体或者类的实例来调用
//类型方法 结构体或者类的名字调用
在结构体中用static关键字声明类型方法
在类中用class关键字声明的方法是类的类型方法
如果想在方法中修改属性的值







0 0