函数
如果要定义一个函数用来输出一段信息,则代码如下:
func sayHello(){ println("Hello Swift")
}
这种写法非常简洁,我曾在
Dart
语言中见过这种写法,func
是个关键字,用来指明所定义的是一个函数,sayHello
是函数名称,()中是该函数的传入参数。如果还想使用传入参数及返回值,如下所示:
func
max(a:Int,b:Int)->Int{
if a>b { return a
}else{ return b
}}
该函数名称为 max,可传入两个参数,都是整数类型,参数名称分别为 a、b,函数返回值也是整数类型。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命名空间下定义Hello类extension ime{
class Hello{ func sayHello(){
println("Hello Swift") }
}}
使用该类及相关方法的代码如下所示:
var h = ime.Hello()h.sayHello()有没让您眼前一亮的感觉呢?
结尾
就写到这里吧,想必大家已经对 Swift 有了一个初步的了解,而且迫不及待的想开始学习了,努力吧,少年,你就是未来的太阳!