Swift编程语言初探

    继WWDC2014后,新的编程语言Swift浮出水面,它具有快速、现代、安全、可交互等特征,并且其语法简单,入门门槛低,有望替代语法复杂难懂的Objective-C语言。据其作者Chris Lattner在博客上声称,该语言开发只用了4年时间,并且底层框架基本上都是由其一人开发完成。

    按照惯例,先用Swift来编写一个简单的"Hello World"

println("Hello World")

    没错,就这么简单,没有IMPORT语句,没有main函数,也没有@符号,分号也不是必须的。编译运行可以看到控制台打印的Hello World字样。

    这里的println是全局函数,负责打印参数内容,并换行。

    Swift可以说是融合其他优秀编程语言的结果,因此许多语法都和其他语言存在共同之处。下面将简单介绍一下该语言的一部分内容:

    1. Swift用var声明变量,用let声明常量,如

var legs = 4               // 变量legs
let PI = 3.1415926    // 常量PI
    那么legs和PI到底是什么类型呢?答案是Type Inference(类型推测),由于这两个语句在声明的同时并且初始化,因为4是Int类型,因此推测变量legs为Int类型,同理,3.1415926为Double类型,因此推测PI为Double类型。也可以强制规定类型:

var legs:Int
let PI:Double
    若legs变量是整数类型,只需在变量名后添加冒号,紧接着跟随一个类型名即可。

    2. 赋值运算符没有返回值,而在其他一些语言中,赋值运算符返回的是变量的值,(如 a = 5 表达式返回5),而作为新手在做条件判断时,经常用赋值运算符来代替"==",导致一些很难发现的逻辑错误,而在Swift中不会出现这种情况,因为这是一个语法错误,在编译期间会给出错误信息,如 if a = 5 { ... } ,if接受的是一个Bool值,而a = 5没有返回值,因此会出错。

/* In C++ */
int a = 1;
if(a = 5) { ... }  // Compile Success
/* In Swift */
var a = 1
if a = 5 { ... }   // Compile error
// if a == 5 {...} This is correct one

    3. switch语句的case后不用加break。这也是其他语言新手经常犯的一个错误,而在Swift中,switch选择的case语句执行完毕后立即跳出switch语句,而不会因为语句后没有break继续执行后面的case或者default语句。

var a = 1
switch a {
 case 1: println(1)
 case 2: println(2)
 default: println(3)
}
// no break at all

    4.  可以用n..m 或者 n...m 代替一个数组,比如:

for index in 0 ..< 3 { println(index) }
// 0
// 1
// 2
 ..代表前闭后开,...代表前后都闭合,所以0..3代表数组[0,1,2],而0...3代表[0,1,2,3]

  5. 如何在字符串中插入变量或常量呢?Swift提供一个特殊的语法:

var number = 5
println("I got \(number) books")

// I got 5 books
    是不是很简单,只需在字符串中用\(和)包裹你要插入的变量或常量即可。

    6. 在Swift中,存在两种类型,一种是引用类型(reference type),一种是值类型(value type),class是引用类型,而enumeration和struct是值类型,它们的一个重要区别是传递的方式不一样,一个是传递副本,一个是传递本身。

    在Swift中,class的样子是:

class Vehicle {
    var wheels:Int?
    var maxPassengers:Int?

    func description() -> String {
        return "This vehicle has \(wheels!) wheels,max passengers is \(maxPassengers!) " }

    init(withWheels wheels:Int,andMaxPassengers maxPassengers:Int) {
        self.wheels = wheels
        self.maxPassengers = maxPassengers }
    deinit { }
}
    该类名为Vehicle,声明了两个属性,wheels和maxPassengers。以及一个实例方法description,该方法没有参数,返回值为字符串类型。同时,该类提供一个初始化方法,init是关键字,该方法接受两个参数,代表之前声明的两个属性。该参数包括三个部分,分别是外部参数名(external parameter name),局部参数名(local parameter name)以及参数类型,在方法调用里会用到外部参数名,局部参数名是用在方法体内的。引进这种方法的好处是继承Objective-C的优良特性,使代码段更像一个句子,更富有描述性。下面来看看如何使用这个类:

var porsche = Vehicle(withWheels:4,andMaxPassengers:5)
println(porsche.description())
// This vehicle has 4 wheels,max passengers is 5
    另外在类的属性中,?代表optional,即该属性要么有值,要么没有值(nil)。


    Swift的语法文档见:http://download.csdn.net/detail/czjuttsw/7450821





    

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
关于Swift语言 About Swift Swift 语言是一种基于 IOS 和 OS X 应用的编程语言,其建立 C 和 Objective-C 最优的技术方面之上,而不受 C 兼容性的约束。Swift 采用安全编程模式,增加了现代特征来使得编程变得更容易,更灵活和更有趣。Swift 干净的过去,回顾到成熟和广受喜爱的 Cocoa 和 Cocoa Touch 框架,是一种重新想象软件开发怎么工作的机会。 Swift 已经开发了很多年。Apple 通过我们现有编译器,调试器和框架底层作为 Swift 的基础。我们使用自动引用计数(Auto Reference Counting, ARC)简化了内存管理。我们的框架层搭建在 Foudation 和 Cocoa 坚实的基础之上,并全面现代化和标准化。Objective-C 自己已经包含了许多支持块,Literal语法和模块,使得框架能够接受现代语言技术而不至于分离。感谢这些基础工作,我们现在开始介绍一款未来苹果软件开发的编程语言Swift 对于Objective-C 开发者来说很感觉很类似。它采用的是Objective-C命名参数的可读性和Objective-C的动态对象模型的效力。它能提供对现有 Cocoa 框架和与Objective-C编码混合匹配互通的无缝接入。基于这种相同背景的建设,Swift 介绍了许多新特点,以及Swift里部分篇幅介绍面向过程和面向对象统一。 Swift 对于新的程序员来说是友好的。它是第一款工业质量系统编程语言,并且像脚本语言那样富有表现力和趣味性。它支持 playground,一种允许编程人员用 Swift 语言测试并立即预览效果的创新的功能,而不需要频繁的搭建和运行一款应用程序。 Swift 联合了现代语言思想的最优点和广大苹果工程师文化智慧。Swift 的编译器能够为性能做优化,语言则为开发做优化,而不是两边做妥协。Swift 从 "Hello World" 被设计到整个操作系统。所有的这些都清晰的表明了Swift 是苹果开发者未来值得投入研究的语言Swift 以一种非常奇妙的方式来编写 IOS 和 OS X 应用的,而且将在功能和性能方面持续优化。我们对 Swift 的目标是很有雄心壮志的。我们迫不及待的想看到你用 Swift 来创造奇迹。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值