Swift Functional Programming(Second Edition)
上QQ阅读APP看书,第一时间看更新

Modern syntax

Swift has a modern syntax that eliminates the verbosity of programming languages such as Objective-C. For instance, the following code example shows an Objective-C class with a property and method. Objective-C classes are defined in two separate files (interface and implementation). The VerboseClass.h file defines an interface as a subclass of the NSObject class. It defines a property, ourArray, and a method, aMethod.

The implementation file imports the header class and provides an implementation for aMethod, as shown in the following code:

//  VerboseClass.h 
@interface VerboseClass: NSObject
@property (nonatomic, strong) NSMutableArray *ourArray;
- (void)aMethod:(NSMutableArray*)anArray;
@end

// VerboseClass.m
#import "VerboseClass.h"

@implementation VerboseClass
- (void)aMethod:(NSMutableArray*)anArray {
self.ourArray = [[NSMutableArrayalloc] initWithArray: @[@"One",
@"Two", @"Three"]];
}

A similar functionality in Swift can be achieved as follows:

class ASwiftClass { 
var ourArray: [String] = []

func aMethod(anArray: [String]) {
self.ourArray = anArray
}
}

let aSwiftClassInstance = ASwiftClass()
aSwiftClassInstance.aMethod(anArray: ["one", "Two", "Three"])
print(aSwiftClassInstance.ourArray)

As seen from this example, Swift eliminates a lot of unnecessary syntax and keeps code very clean and readable.