
更新于4/13/15:@H_301_2@下面文章是基于Xcode 6.3 / Swift 1.2@H_301_2@。@H_301_2@
入门指南@H_301_2@首先要下载app开发软件----xcode。可以到apple app store上免费下载。@H_301_2@
@H_301_2@
确保下载xcode最新版本,xcode6及以上版本才支持swift。@H_301_2@
安装xcode后,打开并点击@H_301_2@Get started with a playground@H_301_2@.@H_301_2@
@H_301_2@
@H_301_2@playground非常便于学习swift编程。你不需要像iPhone app一样去运行playground,它对于你学习swift的基础语法非常有帮助。@H_301_2@
@H_301_2@@R_502_6889@设置为MyPlayground,platform设置为ios,然后点击next,保存在任意地方。@H_301_2@
@H_301_2@
进过前面的 *** 作后,你会发现playground已经创建了3行代码:@H_301_2@
@H_301_2@
// Playground - noun: a place where people can play@H_301_2@import@H_301_2@ UIKitvar@H_301_2@ str =@H_301_2@ "Hello,playground"@H_301_2@ 以//开头的第一行是注释。@H_301_2@
你可以将第二行import UIKit暂时理解为一群smart folks聪明人在apple上写的一大串代码。目前你只需要知道这行对于你后面编写代码是有用的就ok。@H_301_2@
第三行代码@H_301_2@
是你目前需要关注的。表示创建了一个名为 @H_301_2@ str@H_301_2@的变量,其值为 Hello,playground .在窗口的右边,你会看到xcode一直显示着该变量的值。@H_301_2@
@H_301_2@@H_301_2@
可以试着修改下变量str的值为@H_301_2@"Look what I can do!",如下:@H_301_2@@H_301_2@
@H_301_2@@H_301_2@
"Look what I can do!"@H_301_2@
这时你会发现窗口右边显示的内容也变成了@H_301_2@@H_301_2@"Look what I can do!",恭喜,你刚刚进行了编程工作。@H_301_2@
@H_301_2@
你的个人计算器 接下来再来看看我们还能做些什么。在前面的文件末尾,试试输入一个基本的数学算术@H_301_2@@H_301_2@2 + 2@H_301_2@,然后回车,playground将在窗口的右边显示出这个等式的值。
很酷吧!你还可以做其他数学运算。@H_301_2@
挑战一下:利用playground计算123*456的值@H_301_2@@H_301_2@
在你的playground里输入@H_301_2@@H_301_2@
123@H_301_2@*@H_301_2@456@H_301_2@ @H_301_2@
在窗口的右边立马就能显示出结果:@H_301_2@
56@H_301_2@,088
@H_301_2@
接下来,我们来做一些有关变量的 *** 作。@H_301_2@
采用下面的语法来创建一个变量:@H_301_2@
var@H_301_2@ yourVariable@R_502_6889@:@H_301_2@ yourType =@H_301_2@ yourInitialValue 举个例子,将下面的代码加到playground的尾部:@H_301_2@ @H_301_2@ 第一行的代码中,创建了一个名为str的变量,其类型为String,@H_301_2@初始值为“Look what I can do!”@H_301_2@ 第二行,创建了一个类型为Int的变量age,初值为18@H_301_2@ 下面简单介绍下不同的类型:@H_301_2@ @H_301_2@ @H_301_2@ @H_301_2@ @H_301_2@ let@H_301_2@ life42@H_301_2@let@H_301_2@ pi3.14@H_301_2@let@H_301_2@ cantouchThisfalse@H_301_2@let@H_301_2@ captain"Kirk"@H_301_2@ 如果你对一个常量的值进行修改,如下代码,那么代码的左边会出现一个红色的感叹号,告诉你出错了! captain "Hook"@H_301_2@ 点击红色的感叹号,会出现 Cannot assign to ‘let’ value ‘captain’@H_301_2@ 不能给常量重新指定值的消息。一旦你用let定义了一个常量,就表示这个常量的值是不能改变的。@H_301_2@ 删除之前出错的代码,出错告警就会消除。@H_301_2@@H_301_2@ swift可以根据声明的变量或常量的信息自动推断出数据类型,只要信息足够,而不用每次都指定数据类型。如此不仅效率高,而且代码更简明和易读 虽然现在看起来没有什么很大的变化,但是在运行的时候会帮你节省很多类型转换的工作。 但是要记住,你必须提供足够的信息才能确保隐式类型推断。比如,你想将 可以进行如下尝试: playground除了能进行前面所介绍的数学运算外,也能比较两个值,基本的比较运算符如下: 尝试添加如下代码: playground在窗口的右边会计算出相应的值为true或false. 参与与运算 ( 在if/else语句中,当判断条件为真时才会执行{}里面的内容,条件为假时不执行。如下代码: 上面的代码中,如果Batman更酷些,那SpIDerman的酷值就是减一,相反如果SpIDerman更酷些,那SpIDerman的酷值就会加一。@H_301_2@@H_301_2@@H_301_2@@H_301_2@ 你从playground中可以看到SpIDerman的酷值降到6.@H_301_2@@H_301_2@@H_301_2@@H_301_2@@H_301_2@ 另外,你会发生上面代码块中的else if都没有执行过,即使它的判断条件时true,那是因为第一个if的判断条件已经为true,所以后面的跳转分支就不用管了。 尝试输入下面的代码,看下结果: 函数就是执行特定任务的代码块.例如,函数 你可以编写并使用自己的函数,也可以调用其他人编写的函数。例如, Apple提供了很多非常有用的内部库函数。你可以在你的app中使用。 比如@H_301_2@@H_301_2@ 输入如下代码,你在窗口的右边会看到“Hello,World”@H_301_2@: 尝试输入下面的代码,看下打印的结果 while循环是类似于if /else的另一种流程控制,同样也需要条件为true才能执行.不同的是,只要执行条件一直为true,那么{}中的代码块就会继续被执行。 确保你的循环流程能在某个点停止。不要编写无限循环的流程控制,不然会导致各种问题,而且你的程序除了这个流程,其他什么也不能做。 上面的代码运行后,窗口的右边会显示@H_301_2@@H_301_2@ var@H_301_2@ donutsleft 6@H_301_2@while@H_301_2@(@H_301_2@donutsleft > "You have \(@H_301_2@donutsleft) donuts left"@H_301_2@)@H_301_2@ donutsleft =@H_301_2@ donutsleft 1@H_301_2@ "You eat one donut"@H_301_2@"You are all out of donuts :("@H_301_2@)@H_301_2@ 在循环语句中,比如while循环,可以通过break语句在特定的事件中跳出循环。. 在上面的例子中,你希望只要还有cofe,就可以一直drinking Coke 。然而当你知道冰箱里有汽水时,你可以决定当cofe的数量小于或等于汽水时,选择去喝汽水。当这个条件发生时,你就退出了循环,也就停止了喝咖啡。@H_301_2@ continue语句和break语句非常相似,区别在于,continue不是退出整个循环,只是跳出当前这一轮循环,程序回到循环的开始处,然后进行条件的判断是否执行下一轮循环。. 有时候会出现不确定变量是有值还是空值的情况。空值表示该变量赋值为 可选性代表变量要么表示为一个值,要么为 符号 Optionals 在变量的类型转换上很有用. 下面的例子是将 toInt()同 输入下面的代码: http://www.raywenderlich.com/75919/learn-to-code-ios-apps-with-swift-tutorial-1 @H_301_2@ 以上是内存溢出为你收集整理的Swift Tutorial(swift 教程) 1: Welcome to Programming全部内容,希望文章能够帮你解决Swift Tutorial(swift 教程) 1: Welcome to Programming所遇到的程序开发问题。 如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。 欢迎分享,转载请注明来源:内存溢出yourVariable@R_502_6889@ : 变量名,你可以任意取名,例如str或age等@H_301_2@
yourType:变量类型,例如Stringor@H_301_2@Int@H_301_2@
@H_301_2@@H_301_2@初值。@H_301_2@yourInitialValue:@H_301_2@
var@H_301_2@ str:@H_301_2@ String@H_301_2@ "Look what I can do!"@H_301_2@var@H_301_2@ ageInt@H_301_2@ =@H_301_2@ 18@H_301_2@
Int@H_301_2@– 整数 Double@H_301_2@– 浮点数 Bool@H_301_2@– 布尔型,值为true,or false String@H_301_2@– 字符串 输入下面的代码进行练习,观察窗口右边的显示结果: var@H_301_2@ luckyNumber7@H_301_2@var@H_301_2@ costOfCandyDouble@H_301_2@ 1.25@H_301_2@var@H_301_2@ hungryBool@H_301_2@ =@H_301_2@ true@H_301_2@var@H_301_2@ @R_502_6889@"Ryland"@H_301_2@ 创建一个变量后,可以修改其值,如下代码: @R_502_6889@ "Ry"@H_301_2@ var@H_301_2@ favoriteGame"Mario Kart"@H_301_2@favoriteGame "Super Smash bros."@H_301_2@
尝试将前面的@H_301_2@var luckyNumber: Int = 7替换为如下:@H_301_2@@H_301_2@
var@H_301_2@ luckyNumber 7@H_301_2@ luckyNumber设置为Double,你必须给其赋值为7.0(确保所赋的值是浮点数而非整数7).var@H_301_2@ age 18@H_301_2@var@H_301_2@ costOfCandy var@H_301_2@ hungry var@H_301_2@ @R_502_6889@ "Ryland"@H_301_2@@R_502_6889@ "Ry"@H_301_2@var@H_301_2@ favoriteGame "Super Smash bros."@H_301_2@let@H_301_2@ life let@H_301_2@ pi let@H_301_2@ cantouchThis let@H_301_2@ captain "Kirk"@H_301_2@let@H_301_2@ favoriteNumber 3@H_301_2@
let@H_301_2@ batmanCoolness 10@H_301_2@var@H_301_2@ supermanCoolness 9@H_301_2@var@H_301_2@ aquamanCoolness 1@H_301_2@
batmanCoolness < aquamanCoolnesssupermanCoolness >8@H_301_2@batmanCoolness ==@H_301_2@ (@H_301_2@aquamanCoolness +@H_301_2@ supermanCoolness)@H_301_2@batmanCoolness > aquamanCoolness &&@H_301_2@ batmanCoolness )@H_301_2@batmanCoolness < supermanCoolness || aquamanCoolness < supermanCoolness var@H_301_2@ spIDermanCoolness 7@H_301_2@(@H_301_2@spIDermanCoolness +@H_301_2@ aquamanCoolness)@H_301_2@ > supermanCoolnessspIDermanCoolness ==@H_301_2@ 7@H_301_2@ &&@H_301_2@ aquamanCoolness 2@H_301_2@
&&)的 两个值必须都为true,其结果才为true. 参与或运算 (||)的两个值只要其中一个为真,其结果为真,如果第一个值已经为true,那就没有必要关心第二个值。 .
if@H_301_2@ (@H_301_2@batmanCoolness > spIDermanCoolness)@H_301_2@ {@H_301_2@ spIDermanCoolness =@H_301_2@ spIDermanCoolness -@H_301_2@ 1@H_301_2@}@H_301_2@else@H_301_2@ (@H_301_2@batmanCoolness >=@H_301_2@ spIDermanCoolnesselse@H_301_2@ +@H_301_2@ }@H_301_2@ if@H_301_2@(@H_301_2@supermanCoolness < spIDermanCoolness)@H_301_2@ {@H_301_2@ supermanCoolness =@H_301_2@ supermanCoolness 1@H_301_2@ spIDermanCoolness (@H_301_2@supermanCoolness ==@H_301_2@ spIDermanCoolness1@H_301_2@ spIDermanCoolness else@H_301_2@ }@H_301_2@ Simple Functions简单函数 printMyFavoriteSnack()可能就只是打印出字符串"Pringles".println() 函数. 当你调用该函数时,程序会在终端打印出里面的内容.@H_301_2@
println@H_301_2@(@H_301_2@)@H_301_2@
"Ry is awesome"@H_301_2@)@H_301_2@(@H_301_2@batmanCoolness)@H_301_2@
String Interpolation字符串的插入 字符串插入可以将字符串和变量的值在一条语句中打印出来,如下: var@H_301_2@ apples 5@H_301_2@"Sally has \(@H_301_2@apples) apples"@H_301_2@)@H_301_2@ \(@H_301_2@apples - 5) apples"@H_301_2@)@H_301_2@ 使用格式 \(variable @R_502_6889@) 输入下面的代码,看下结果:@H_301_2@@H_301_2@var@H_301_2@ johnsGrade 95@H_301_2@var@H_301_2@ samsGrade 82@H_301_2@(@H_301_2@johnsGrade < samsGrade{@H_301_2@ "\(@H_301_2@johnsGrade) is less than \(@H_301_2@samsGrade)"@H_301_2@)@H_301_2@(@H_301_2@johnsGrade > samsGrade\(@H_301_2@johnsGrade) is greater than \(@H_301_2@johnsGrade) is equal to }@H_301_2@ While Loops while循环
var@H_301_2@ secondsleft 3@H_301_2@while@H_301_2@ (@H_301_2@secondsleft > 0@H_301_2@(@H_301_2@secondsleft)@H_301_2@ secondsleft =@H_301_2@ secondsleft "Blast off!"@H_301_2@)@H_301_2@ (3 times)@H_301_2@,告诉你这条语句运行了几次。同时,你可以在屏幕的最上面选择@H_301_2@VIEw\Assistant Editor\Show Assistant Editor,@H_301_2@打开另一个窗口Assistant Editor@H_301_2@@H_301_2@来看具体的运行结果。@H_301_2@
Break Statement break语句
var@H_301_2@ cokesleft var@H_301_2@ fantasleft 4@H_301_2@(@H_301_2@cokesleft > \(@H_301_2@cokesleft) Cokes left."@H_301_2@)@H_301_2@ cokesleft =@H_301_2@ cokesleft (@H_301_2@cokesleft <=@H_301_2@ fantasleft{@H_301_2@ break }@H_301_2@"You stop drinking Cokes."@H_301_2@)@H_301_2@
var@H_301_2@ goofOffTime var@H_301_2@ bossComing 0@H_301_2@(@H_301_2@goofOffTime > "Goofing off!"@H_301_2@)@H_301_2@ goofOffTime =@H_301_2@ goofOffTime 1@H_301_2@ bossComing =@H_301_2@ bossComing (@H_301_2@goofOffTime ==@H_301_2@ bossComing"Done goofing off."@H_301_2@
Continue Statement continue语句
var@H_301_2@ numbers (@H_301_2@numbers <10@H_301_2@(@H_301_2@numbers 9@H_301_2@{@H_301_2@ numbers =@H_301_2@ numbers 1@H_301_2@ continue@H_301_2@ }@H_301_2@ (@H_301_2@numbers)@H_301_2@ numbers }@H_301_2@ "List of World Wars:"@H_301_2@var@H_301_2@ ww 1@H_301_2@(@H_301_2@ww <5@H_301_2@(@H_301_2@ww 3@H_301_2@ || ww 4@H_301_2@{@H_301_2@ ww =@H_301_2@ ww "World War \(@H_301_2@ww)"@H_301_2@)@H_301_2@ ww "That's the beauty of World War V,Lois. It's so intense it skips over the other two. - Peter Griffin"@H_301_2@)@H_301_2@ . Optionals可选性 nil.nil:
var@H_301_2@ optionalNumberInt@H_301_2@? 5@H_301_2@optionalNumber nil@H_301_2@ ?表示该值是可选的. :
if@H_301_2@ let@H_301_2@ number =@H_301_2@ optionalNumber if let等同于if.
=@H_301_2@ optionalNumber "It is a number"@H_301_2@"It is not a number"@H_301_2@}@H_301_2@
@H_301_2@
Conversion Between Data Types数据类型的转换 String转换为Int.
var@H_301_2@ languagesLearned"3"@H_301_2@var@H_301_2@ languagesLearnednum=@H_301_2@ languagesLearned.toInt(@H_301_2@ 这里声明了一个初值为@H_301_2@"3"的字符串变量@H_301_2@languagesLearned,以及一个可选变量languagesLearnednum并调用函数toInt().给其赋初值 。Methods are very similar to functions likeprintln()that you learned earlIEr,except that they are a part of aclass. You will learn more about that later. println()@H_301_2@方法一样都是已经实现了的,是一个类的一部分,这个在后面会学到更多。 该方法是将String以Int类型输出. 之所以将languagesLearnednum声明为可选性,是因为它的值有可能是nil. 比如你要转换的字符串不包含数字,而是像"Hello,World".
let@H_301_2@ num =@H_301_2@ languagesLearnednum
var@H_301_2@ tutorialTeam"55"@H_301_2@var@H_301_2@ editorialTeam 23@H_301_2@var@H_301_2@ tutorialTeamNum=@H_301_2@ tutorialTeam.toInt)@H_301_2@let@H_301_2@ numTutorial =@H_301_2@ tutorialTeamNum (@H_301_2@numTutorial > editorialTeam{@H_301_2@ \(@H_301_2@numTutorial) is greater than \(@H_301_2@editorialTeam)"@H_301_2@)@H_301_2@ (@H_301_2@numTutorial < editorialTeam\(@H_301_2@numTutorial) is less than \(@H_301_2@numTutorial) is equal to "InvalID entry"@H_301_2@}@H_301_2@
微信扫一扫
支付宝扫一扫
评论列表(0条)