在swift环境中,我们通过“var”关键字来定义变量。通过“let”关键字来定义常量。常量的值无需在编译时指定,但是至少要赋值一次。
var myVariable = 42
myVariable = 50
let myConstant = 42
数组的创建:
利用“[]”来创建数组,同时对数组中元素的访问是通过方括号中的索引来实现。
流程控制语句:
在swift编程环境中,使用 if 和 switch 作为条件控制。使用 for-in、for、while和do-while作为循环。
代码如下:
let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0
for score in individualScores {
if score >50 { teamScores += 3}
else { teamScores += 1}
}
函数的使用:
使用关键字func来创建函数,使用 “->”符号来分隔参数的名字和返回值类型。
在引用函数时,调用函数使用他的名字加上小括号中的参数列表来实现。
对象的创建和使用:
swift使用关键字“class”来定义一个类,类中的属性的声明则是在类里作为常量或变量声明的。定义方法如下:
class Shape {
var numberOfSides = 0
func simpleDescription() ->String {
return "A shape with \(numberOfSides) sides."
}
}
枚举和结构:
使用“enum”关键字来定义枚举和结构。代码如下:
enum Rank: Int {
case Ace = 1
case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten
case Jack, Queen, King
func simpleDescrition() ->String {
switch self {
case .Ace: return "ace"
case .Jack: return "jack"
case .Queen: return "queen"
case .King: return "king"
default:return String(self.toRaw())
}
}
}
let ace = Rank.Ace //引用枚举常量
8
针对每段小代码片段,大家可以直接复制粘贴到主程序编程窗口,点击“运行”按钮来测试输出效果。
简单来说swift是开发苹果iOS的最快捷的计算机语言。但是实际上swift已经可以进行一次性编译之后,同时实现在苹果iOS和安卓系统上的部署。能够实现这个功能的目前唯一的IDE是SCADE,一个德国的软件产品(目前处于试用状态)。
而且从2015年起,swift不但支持在手机前端的开发,还支持开发服务器后端的程序,比如使用PerfectlySoft出品的Perfect 2.0就可以确保swift在Linux Ubuntu 16.04上运行并实现一个Web服务器,访问各种数据库并调用远程访问。实际上Perfect 2.0是市面上最快的HTTP服务器,比php和java服务器都快得多。
详细的服务器对比指标请参考这里:
http://gold.xitu.io/entry/57e296af0bd1d000570ee3b4?utm_source=gold-miner&utm_medium=readme&utm_campaign=github
关于swift的中文指南,可以参考这里:https://github.com/ipader/SwiftGuide
关于服务器端的Swift语言使用,可以参考这里:https://github.com/PerfectlySoft/PerfectDocs/blob/master/README.zh_CN.md
swift做web我觉得优势不大,web的未来基本上被js把持着,js的能力大家有目共堵。如果你要做web开发那一定是要学js的(浏览器内置的都是js执行引擎),不是有特殊原因的话没必要再学另一门语言一起做web开发,不管是php,ruby,python还是java,c#,何必呢。要说swift除了开发iOS外,我觉得在后端也会非常大的价值,swift采用ARC而不是gc,这就意味着它可以替代C,C++成为高性能项目的主打语言,这些也是java,go所不足的地方,同时swift的生产力却远非c能达到。当然这个过程肯定没那么快,swift要成为后台语言首先要解决跨平台的问题,mac os x的服务器占比相当低。跨平台就意味着一套平台无关的高性能基础库,还要针对服务端的性能优化,这些都是swift往后需要不断完善的是,swift的开源也是为swift的未来提供了很大的想象空间,但是用来做web页面没有什么优势
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)