Swift Tutorial(swift 教程) 1: Welcome to Programming
更新于4/13/15:下面文章是基于Xcode 6.3 / Swift 1.2。 入门指南首先要下载app开发软件----xcode。可以到apple app store上免费下载。
确保下载xcode最新版本,xcode6及以上版本才支持swift。 安装xcode后,打开并点击Get started with a playground.
playground非常便于学习swift编程。你不需要像iPhone app一样去运行playground,它对于你学习swift的基础语法非常有帮助。 name设置为MyPlayground,platform设置为ios,然后点击next,保存在任意地方。
playground的介绍进过前面的操作后,你会发现playground已经创建了3行代码:
// Playground - noun: a place where people can play import UIKit var str = "Hello,playground" 以//开头的第一行是注释。 你可以将第二行import UIKit暂时理解为一群smart folks聪明人在apple上写的一大串代码。目前你只需要知道这行对于你后面编写代码是有用的就ok。 第三行代码 是你目前需要关注的。表示创建了一个名为 str的变量,其值为 Hello,playground
.在窗口的右边,你会看到xcode一直显示着该变量的值。
可以试着修改下变量str的值为
"Look what I can do!" 这时你会发现窗口右边显示的内容也变成了
你的个人计算器接下来再来看看我们还能做些什么。在前面的文件末尾,试试输入一个基本的数学算术2 + 2,然后回车,playground将在窗口的右边显示出这个等式的值。
很酷吧!你还可以做其他数学运算。 挑战一下:利用playground计算123*456的值 在你的playground里输入 123*456 在窗口的右边立马就能显示出结果: 56,088
变量接下来,我们来做一些有关变量的操作。 采用下面的语法来创建一个变量: var yourVariableName: yourType = yourInitialValue
举个例子,将下面的代码加到playground的尾部:
var str: String "Look what I can do!" var ageInt = 18 第一行的代码中,创建了一个名为str的变量,其类型为String,初始值为“Look what I can do!” 第二行,创建了一个类型为Int的变量age,初值为18 下面简单介绍下不同的类型:
Types类型
如下是swift提供的一些基本类型:
var luckyNumber7 var costOfCandyDouble 1.25 var hungryBool = true var name"Ryland"创建一个变量后,可以修改其值,如下代码:
name "Ry"
var favoriteGame"Mario Kart" favoriteGame "Super Smash Bros."
Constants常量常量用let来创建,其值是不能修改的。编写代码时,如果可以尽可能的使用常量而非变量,因为编译器不用计算值发送变化的可能性,程序会运行的更快。任何一个数据类型都可以被定义为一个常量或是变量。let life42 let pi3.14 let canTouchThisfalse let captain"Kirk" 如果你对一个常量的值进行修改,如下代码,那么代码的左边会出现一个红色的感叹号,告诉你出错了! captain "Hook" 点击红色的感叹号,会出现
Cannot assign to ‘let’ value ‘captain’
不能给常量重新指定值的消息。一旦你用let定义了一个常量,就表示这个常量的值是不能改变的。
删除之前出错的代码,出错告警就会消除。 Inferred Typing隐式类型推断swift可以根据声明的变量或常量的信息自动推断出数据类型,只要信息足够,而不用每次都指定数据类型。如此不仅效率高,而且代码更简明和易读
虽然现在看起来没有什么很大的变化,但是在运行的时候会帮你节省很多类型转换的工作。 但是要记住,你必须提供足够的信息才能确保隐式类型推断。比如,你想将 可以进行如下尝试:
var age 18 var costOfCandy var hungry var name "Ryland" name "Ry" var favoriteGame "Super Smash Bros." let life let pi let canTouchThis let captain "Kirk" let favoriteNumber 3
Comparison Operators比较运算符playground除了能进行前面所介绍的数学运算外,也能比较两个值,基本的比较运算符如下:
尝试添加如下代码:
var spidermanCoolness 7 (spidermanCoolness + aquamanCoolness) > supermanCoolness spidermanCoolness == 7 && aquamanCoolness 2 playground在窗口的右边会计算出相应的值为true或false. 参与与运算 (
If/else statements在if/else语句中,当判断条件为真时才会执行{}里面的内容,条件为假时不执行。如下代码:
上面的代码中,如果Batman更酷些,那Spiderman的酷值就是减一,相反如果Spiderman更酷些,那Spiderman的酷值就会加一。 你从playground中可以看到Spiderman的酷值降到6. 另外,你会发生上面代码块中的else if都没有执行过,即使它的判断条件时true,那是因为第一个if的判断条件已经为true,所以后面的跳转分支就不用管了。 尝试输入下面的代码,看下结果:
if(supermanCoolness < spidermanCoolness) { supermanCoolness = supermanCoolness 1 spidermanCoolness (supermanCoolness == spidermanCoolness1 spidermanCoolness else } Simple Functions简单函数 函数就是执行特定任务的代码块.例如,函数 你可以编写并使用自己的函数,也可以调用其他人编写的函数。例如, Apple提供了很多非常有用的内部库函数。你可以在你的app中使用。 比如 输入如下代码,你在窗口的右边会看到“Hello,World”:
尝试输入下面的代码,看下打印的结果
String Interpolation字符串的插入
字符串插入可以将字符串和变量的值在一条语句中打印出来,如下:
var apples 5 "Sally has (apples) apples") (apples - 5) apples") 使用格式
(variable name)
输入下面的代码,看下结果:
varjohnsGrade 95 var samsGrade 82 (johnsGrade < samsGrade{ "(johnsGrade) is less than (samsGrade)") (johnsGrade > samsGrade(johnsGrade) is greater than (johnsGrade) is equal to } While Loops while循环while循环是类似于if /else的另一种流程控制,同样也需要条件为true才能执行.不同的是,只要执行条件一直为true,那么{}中的代码块就会继续被执行。
确保你的循环流程能在某个点停止。不要编写无限循环的流程控制,不然会导致各种问题,而且你的程序除了这个流程,其他什么也不能做。 上面的代码运行后,窗口的右边会显示 var donutsLeft 6
while(donutsLeft > "You have (donutsLeft) donuts left")
donutsLeft = donutsLeft 1
"You eat one donut""You are all out of donuts :(")
Break Statement break语句在循环语句中,比如while循环,可以通过break语句在特定的事件中跳出循环。.
在上面的例子中,你希望只要还有cofe,就可以一直drinking Coke 。然而当你知道冰箱里有汽水时,你可以决定当cofe的数量小于或等于汽水时,选择去喝汽水。当这个条件发生时,你就退出了循环,也就停止了喝咖啡。
|