Switf(二)

函数 

  如果要定义一个函数用来输出一段信息,则代码如下:
func sayHello(){
   println("Hello Swift")

}

这种写法非常简洁,我曾在 Dart 语言中见过这种写法,func 是个关键字,用来指明所定义的是一个函数,sayHello 是函数名称,()中是该函数的传入参数。如果还想使用传入参数及返回值,如下所示:
func max(a:Int,b:Int)->Int{

   if a>b {
       return a
   }else{
       return b

}}

该函数名称为 max,可传入两个参数,都是整数类型,参数名称分别为 ab,函数返回值也是整数类型。Swift 中的函数还可以同时返回多个值,如下所示:

func getNum()->(Int,Int){
   return (3,4)

}

如果想对该函数调用并获取到这两个返回结果值,则用法如下:

let (a,b) = getNum()面向对象

  类的定义非常简单,如下所示:
class Hello{
   func sayHello(){
       println("Hello Swift")
   }

}

该例定义了一个名叫 Hello 的类,其有一个成员函数叫 sayHello,如果想调用该类及相应函数,则用法如下:
var h = Hello()
h.sayHello()

类的继承的写法也非常简单,这一点继承了 C++语言的优秀传统,如果我们想定义一个名叫 Hi 的类继承自 Hello,则写法如下:
class Hi:Hello{
}

如果后期我们还想为某类添加功能,有两种方法,第一是直接修改类的源码添加功能,第二是为该类写扩展功能,下面我们来着重介绍第二种,如果我们想为 Hello 类再添加一个 sayHi 的方法,则代码如下所示:
extension Hello{

   func sayHi(){
       println("Hi Swift")

4

}}

其中extension关键字表示要扩展已经存在的类的功能,如果我们想扩展系统或者第三方的某个类的功能而得不到其源码时,采用这种方式将会是一个绝佳的选择。如下所示:
extension String{

   func printSelf(){
       println(self)

}}

var str = "Hello Swift"
str.printSelf()
我们通过这种方式扩展了系统的 String 类,为她增加了一个 printSelf 的方法,在使用时可直接调用目标对象的 printSelf 方法,非常方便。

关于面向对象的更多特性,请看本书正文。
其实
extension 还有另一个用途,那就是模拟命名空间,请看下一个主题。

命名空间

Swift 语言中并没有专门的命名空间的关键字,但是可以模拟命名空间这个面向对象的特性,如下所示:

//定义命名空间imeclass ime{
}

//ime命名空间下定义Helloextension ime{

   class Hello{
       func sayHello(){
          println("Hello Swift")
       }

}}

使用该类及相关方法的代码如下所示:

var h = ime.Hello()h.sayHello()有没让您眼前一亮的感觉呢?

结尾

就写到这里吧,想必大家已经对 Swift 有了一个初步的了解,而且迫不及待的想开始学习了,努力吧,少年,你就是未来的太阳! 


你可能感兴趣的:(ios,面向对象,swift)