如何入门服务器端swift开发

如何入门服务器端swift开发,第1张

在利用xcode创建了一个工程之后,在其开发界面中,我们点击“main_swift”项,就可以打开主程序编程界面了,以下所有代码均在此编程界面中完成。

变量和常量的定义:

在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

针对每段小代码片段,大家可以直接复制粘贴到主程序编程窗口,点击“运行”按钮来测试输出效果。

本帖最后由 pig2 于 2014-3-11 18:45 编辑

1.swift 是什么?

OpenStackObject Storage (Swift) 是开源的,用来创建可扩展的、冗余的、对象存储(引擎)。 swift使用标准化的服务器存储 PB 级可用数据。但它并不是文件系统 (file system) ,实时的数据存储系统(real-timedata storage system) 。 swift 看起来更像是一个长期的存储系统 (long term storage system) ,为了获得、调用、更新一些静态的永久性的数据。比如说,适合存储一些类型的数据:虚拟机镜像,图片存储,邮件存储,文档的备份。没有“单点”或者主控结点 (master point of control) , swift看起来具有更强的扩展性、冗余和持久性。

2.swift 能做什么?

长于存储非结构化数据,大、小文件性能据说都很好(目前没有测试数据, adrian otto 说测试过10 亿个 1byte 数据)。

简单来说swift是开发苹果iOS的最快捷的计算机语言。

但是实际上swift已经可以进行一次性编译之后,同时实现在苹果iOS和安卓系统上的部署。能够实现这个功能的目前唯一的IDE是SCADE,一个德国的软件产品(目前处于试用状态)。

而且从2015年起,swift不但支持在手机前端的开发,还支持开发服务器后端的程序,比如使用PerfectlySoft出品的Perfect 2.0就可以确保swift在Linux Ubuntu 16.04上运行并实现一个Web服务器,访问各种数据库并调用远程访问。实际上Perfect 2.0是市面上最快的HTTP服务器,比php和java服务器都快得多。

3.swift 不能做什么?

Objects must be <5GB : swift 1.2 之后已经对 object 的大小不做限制

Not a Filesystem :不是文件系统。 swift 使用 REST API ,而不是使用传统意义上的文件操作命令, open(), read(), write(), seek(), 和 close() 等。

No File Locking :干脆不支持“文件锁”。其实在 swift 中,“锁”的概念是没有必要的。

No Directory Hierarchies :没有文件目录结构。 swift 可以模拟目录结构,但没有必要

Not a Database :不是数据库。 swift 使用 account-container-object 的概念存储 object ,可以列表出指定 container 中的 object ,不支持 server 端的查询和处理操作。

Vapor 是一个基于纯 Swift 构建出的 Web 开发框架,目前可以运行在 macOS 和 Ubuntu ,用于构建出漂亮易用的网站或者 API 服务。

Vapor的官网做的很漂亮,文档也比较完整,是一款比较主流、优雅、更新活跃的框架,非常适合初学者。

安装 官方文档 安装步骤即可。

vapor的文件结构类似于其他Web框架。

项目主体目录层级

编译之前需要拉取项目所有的依赖包,Vapor使用Swift Package Manager 来管理包,使用 vapor fetch 命令进行拉取依赖,拉取到本地后后所有的包源码将会在 Packages 目录中,如下:

这类似于iOS中使用 cocoapods 管理依赖包时的 pod install 。

使用 vapor build 或者 vapor build --release 编译项目

使用 vapor run serve 运行项目。

这时就可以通过在浏览器中输入 localhost:8080/plaintext 或者运行 curl localhost:8080/plaintext 来请求模板中的示例请求。

cd进入项目目录下,我们可以使用 vapor xcode 命令生成Xcode项目,然后就可以直接使用 Xcode进行web开发了,这对于iOS开发者是那么的熟悉。用Xcode打开项目,选择 Run scheme来运行。

vapor模板中 Routes.swift 中已经有了几个示例,例如:

我们运行起来项目后,直接在浏览器里输入“0.0.0.0:8080/hello”这个get请求,就会返回响应的json数据。

vapor初步了解,感觉很不错的样子。现在我们已经了解了vapor的基本操作,下一步我们学习一下使用Heroku部署服务器。 Heroku 为个人用户提供了一个免费沙盒(512 MB RAM │ 1 web/1 worker),我们可以使用它免费去部署一个属于自己的服务器。访问速度是有点慢,毕竟国外免费。新开的坑,希望接下来能够慢慢填。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/295465.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-25
下一篇2023-04-25

发表评论

登录后才能评论

评论列表(0条)

    保存