苹果编程语言Swift中文教程.doc
《苹果编程语言Swift中文教程.doc》由会员分享,可在线阅读,更多相关《苹果编程语言Swift中文教程.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、苹果编程语言Swift中文教程:Swift简介本文来自于:这篇文章简要介绍了苹果于WWDC 2014发布的编程语言Swift。Swift是什么?Swift是苹果于WWDC 2014发布的编程语言,这里引用The Swift Programming Language的原话:“”Swift is a new programming language for iOS and OS X apps that builds on the best of C and Objective-C, without the constraints of C compatibility.Swift adopts sa
2、fe programming patterns and adds modern features to make programming easier, more flexible and more fun.Swifts clean slate, backed by the mature and much-loved Cocoa and Cocoa Touch frameworks, is an opportunity to imagine how software development works.Swift is the first industrial-quality systems
3、programming language that is as expressive and enjoyable as a scripting language.简单的说:“”Swift用来写iOS和OS X程序。(估计也不会支持其它屌丝系统)Swift吸取了C和Objective-C的优点,且更加强大易用。Swift可以使用现有的Cocoa和Cocoa Touch框架。Swift兼具编译语言的高性能(Performance)和脚本语言的交互性(Interactive)。Swift语言概览基本概念注:这一节的代码源自The Swift Programming Language中的A Swift
4、 Tour。Hello, world类似于脚本语言,下面的代码即是一个完整的Swift程序。“”println(Hello, world) 变量与常量Swift使用var声明变量,let声明常量。“”var myVariable = 42myVariable = 50let myConstant = 42类型推导Swift支持类型推导(Type Inference),所以上面的代码不需指定类型,如果需要指定类型:“”let explicitDouble : Double = 70Swift不支持隐式类型转换(Implicitly casting),所以下面的代码需要显式类型转换(Explici
5、tly casting):“”let label = The width is let width = 94let width = label + String(width)字符串格式化Swift使用(item)的形式进行字符串格式化:“”let apples = 3let oranges = 5let appleSummary = I have (apples) apples.let appleSummary = I have (apples + oranges) pieces of fruit.数组和字典Swift使用操作符声明数组(array)和字典(dictionary):“”var
6、shoppingList = catfish, water, tulips, blue paintshoppingList1 = bottle of watervar occupations = Malcolm: Captain, Kaylee: Mechanic,occupationsJayne = Public Relations一般使用初始化器(initializer)语法创建空数组和空字典:“” let emptyArray = String() let emptyDictionary = Dictionary()如果类型信息已知,则可以使用声明空数组,使用:声明空字典。控制流概览Sw
7、ift的条件语句包含if和switch,循环语句包含for-in、for、while和do-while,循环/判断条件不需要括号,但循环/判断体(body)必需括号:“”let individualScores = 75, 43, 103, 87, 12var teamScore = 0for score in individualScores if score 50 teamScore += 3 else teamScore += 1 可空类型结合if和let,可以方便的处理可空变量(nullable variable)。对于空值,需要在类型声明后添加?显式标明该类型可空。“”var opt
8、ionalString: String? = HellooptionalString = nilvar optionalName: String? = John Appleseedvar gretting = Hello!if let name = optionalName gretting = Hello, (name)灵活的switchSwift中的switch支持各种各样的比较操作:“”let vegetable = red pepperswitch vegetable case celery: let vegetableComment = Add some raisins and ma
9、ke ants on a log.case cucumber, watercress: let vegetableComment = That would make a good tea sandwich.case let x where x.hasSuffix(pepper): let vegetableComment = Is it a spicy (x)?default: let vegetableComment = Everything tastes good in soup.其它循环for-in除了遍历数组也可以用来遍历字典:“”let interestingNumbers = Pr
10、ime: 2, 3, 5, 7, 11, 13, Fibonacci: 1, 1, 2, 3, 5, 8, Square: 1, 4, 9, 16, 25,var largest = 0for (kind, numbers) in interestingNumbers for number in numbers if number largest largest = number largestwhile循环和do-while循环:“”var n = 2while n 100 n = n * 2nvar m = 2do m = m * 2 while m 100mSwift支持传统的for循环
11、,此外也可以通过结合.(生成一个区间)和for-in实现同样的逻辑。“”var firstForLoop = 0for i in 0.3 firstForLoop += ifirstForLoopvar secondForLoop = 0for var i = 0; i String return Hello (name), today is (day).greet(Bob, Tuesday)通过元组(Tuple)返回多个值:“”func getGasPrices() - (Double, Double, Double) return (3.59, 3.69, 3.79)getGasPrice
12、s()支持带有变长参数的函数:“”func sumOf(numbers: Int.) - Int var sum = 0 for number in numbers sum += number return sumsumOf()sumOf(42, 597, 12)函数也可以嵌套函数:“”func returnFifteen() - Int var y = 10 func add() y += 5 add() return yreturnFifteen()作为头等对象,函数既可以作为返回值,也可以作为参数传递:“”func makeIncrementer() - (Int - Int) func
13、 addOne(number: Int) - Int return 1 + number return addOnevar increment = makeIncrementer()increment(7) func hasAnyMatches(list: Int, condition: Int - Bool) - Bool for item in list if condition(item) return true return falsefunc lessThanTen(number: Int) - Bool return number Int in let result = 3 * n
14、umber return result )当闭包的类型已知时,可以使用下面的简化写法:“”numbers.map( number in 3 * number )此外还可以通过参数的位置来使用参数,当函数最后一个参数是闭包时,可以使用下面的语法:“”sort(1, 5, 3, 12, 2) $0 $1 类和对象 创建和使用类Swift使用class创建一个类,类可以包含字段和方法:“”class Shape var numberOfSides = 0func simpleDescription() - String return A shape with (numberOfSides) side
15、s.创建Shape类的实例,并调用其字段和方法。“”var shape = Shape()shape.numberOfSides = 7varshapeDescription = shape.simpleDescription()通过init构建对象,既可以使用self显式引用成员字段(name),也可以隐式引用(numberOfSides)。“”class NamedShape var numberOfSides: Int = 0 var name: String init(name: String) self.name = name func simpleDescription() - S
16、tring return A shape with (numberOfSides) sides. 使用deinit进行清理工作。继承和多态Swift支持继承和多态(override父类方法):“”class Square: NamedShape var sideLength: Double init(sideLength: Double, name: String) self.sideLength = sideLength super.init(name: name) numberOfSides = 4 func area() - Double return sideLength * side
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 苹果 编程 语言 Swift 中文 教程
限制150内