您的位置:首页 > 移动开发 > Swift

我眼中的swift

2016-03-17 08:42 295 查看
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac
OS和iOS平台,用于搭建基于苹果平台的应用程序。Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别
我不敢说swift学了有没有用,可不可以挣更多钱,但这门语言还是比较有意思的。swift骨子里面还是objc,但打扮过,比原来的模样漂亮。个人感觉,苹果还真的想用它取代objc呢。swift
的类型,可以桥接到 objc 的类型,反之亦然。如 string 对应原来objc的NSString, closures对应objc的block,等等。objc 积累下来的大量库,实现不用改写,swift 就直接可以使用。

同一个工程,可以同时使用swift, objc, c, c++ 四种编译语言(额外嵌入的脚本语言另算)
原来的 iOS/Mac 工程,已经可以同时使用objc, c, C++三种语言。现在支持第四种。objc, c, c++三种语言的结合很容易, objc跟c本身就兼容,objc跟c++结合只要将文件名改成.mm。而swift跟其它语言的结合,需要另外的文件进行桥接,其实也挺方便的。
这里的桥接很容易,Apple自家的各种 C 库移植过来了。比如Core Image/Audio,直接包含

import CoreAudio
import CoreImage


就可以使用了。
现在swift完全可以跟objc并存,原来的工程不建议重写,也不用重写。顺其自然,慢慢让它进化就是了。

编程语言的语法重要,但是语法背后的概念更重要。比如面向对象,常用概念无非是,继承,多态,封装,信息隐藏等。继承又可能分成多重继承,接口继承,实现继承。或者还会有些嵌套类,嵌套函数等等。
当明白语法背后的概念,知道为什么需要有这些东西。之后从一门语言切换到另一门有着相同概念的语言,其实很容易。
而语法会影响表达,理论上每门语言都可以表达任何概念。不过当某种概念在某门语言中,很难表达出来,就会倾向于不这样使用它,这种概念在那门语言的社区就难以被人熟知。感觉上,swift有着
obj-c, C++, Ruby的影子。
下面写了一个swift冒泡排序, 抛砖引玉:

//冒泡排序
func bubbleSort(inout array: [Int])->[Int] {
var flag = true
for (var i = 0; i < array.count - 1 && flag == true; i++) {
flag = false
for (var j = 0; j < array.count - 1 - i; j++) {
if array[j] > array[j + 1] {
let temp = array[j + 1]
array[j + 1] = array[j]
array[j] = temp
flag = true;
}
}
}
return array
}

var array1 = [1, 54, 65, 2, 8]
var array2 = bubbleSort(&array1)

for a in array2 {
print(a)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: