加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift Tutorial(swift 教程) 1: Welcome to Programming

发布时间:2020-12-14 01:52:22 所属栏目:百科 来源:网络整理
导读:更新于4/13/15: 下面文章是基于 Xcode 6.3 / Swift 1.2 。 入门指南 首先要下载app开发软件----xcode。可以到apple app store上免费下载。 确保下载xcode最新版本,xcode6及以上版本才支持swift。 安装xcode后,打开并点击 Get started with a playground .

更新于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!",如下:

"Look what I can do!"

这时你会发现窗口右边显示的内容也变成了"Look what I can do!",恭喜,你刚刚进行了编程工作。


你的个人计算器

接下来再来看看我们还能做些什么。在前面的文件末尾,试试输入一个基本的数学算术2 + 2,然后回车,playground将在窗口的右边显示出这个等式的值。


很酷吧!你还可以做其他数学运算。

挑战一下:利用playground计算123*456的值

在你的playground里输入

123*456
 
 

在窗口的右边立马就能显示出结果:

56,088


接下来我们在playground上做更多的编程。除了保留import UIKit这一条语句,其他的都先删掉。

变量

接下来,我们来做一些有关变量的操作。

采用下面的语法来创建一个变量:

var yourVariableName: yourType = yourInitialValue yourVariableName : 变量名,你可以任意取名,例如str或age等

yourType:变量类型,例如StringorInt

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提供的一些基本类型:

  • Int– 整数
  • Double– 浮点数
  • Bool– 布尔型,值为true,or false
  • String– 字符串
输入下面的代码进行练习,观察窗口右边的显示结果:

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 luckyNumber: Int = 7替换为如下:

var luckyNumber 7

虽然现在看起来没有什么很大的变化,但是在运行的时候会帮你节省很多类型转换的工作。

但是要记住,你必须提供足够的信息才能确保隐式类型推断。比如,你想将luckyNumber设置为Double,你必须给其赋值为7.0(确保所赋的值是浮点数而非整数7).

可以进行如下尝试:

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除了能进行前面所介绍的数学运算外,也能比较两个值,基本的比较运算符如下:

  • >大于
  • <小于
  • ==等于
  • >=大于或等于
  • <=小于或等于
  • &&与运算
  • ||或运算

尝试添加如下代码:

let batmanCoolness 10
var supermanCoolness 9
var aquamanCoolness 1
batmanCoolness < aquamanCoolness
supermanCoolness >8
batmanCoolness == (aquamanCoolness + supermanCoolness)
batmanCoolness > aquamanCoolness && batmanCoolness )
batmanCoolness < supermanCoolness || aquamanCoolness < supermanCoolness
var spidermanCoolness 7
(spidermanCoolness + aquamanCoolness) > supermanCoolness
spidermanCoolness == 7 && aquamanCoolness 2

playground在窗口的右边会计算出相应的值为true或false.

参与与运算 (&&)的 两个值必须都为true,其结果才为true. 参与或运算 (||)的两个值只要其中一个为真,其结果为真,如果第一个值已经为true,那就没有必要关心第二个值。 .

If/else statements

在if/else语句中,当判断条件为真时才会执行{}里面的内容,条件为假时不执行。如下代码:


if (batmanCoolness > spidermanCoolness) {
  spidermanCoolness = spidermanCoolness - 1
}
else (batmanCoolness >= spidermanCoolnesselse + }

上面的代码中,如果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简单函数

函数就是执行特定任务的代码块.例如,函数 printMyFavoriteSnack()可能就只是打印出字符串"Pringles".

你可以编写并使用自己的函数,也可以调用其他人编写的函数。例如, Apple提供了很多非常有用的内部库函数。你可以在你的app中使用。

比如println() 函数. 当你调用该函数时,程序会在终端打印出里面的内容.

输入如下代码,你在窗口的右边会看到“Hello,World”:

println()

尝试输入下面的代码,看下打印的结果

"Ry is awesome")
(batmanCoolness)

String Interpolation字符串的插入

字符串插入可以将字符串和变量的值在一条语句中打印出来,如下:
var apples 5
"Sally has (apples) apples")
(apples - 5) apples")
使用格式 (variable name) 输入下面的代码,看下结果:

var johnsGrade 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 secondsLeft 3
while (secondsLeft > 0(secondsLeft)
  secondsLeft = secondsLeft "Blast off!")

确保你的循环流程能在某个点停止。不要编写无限循环的流程控制,不然会导致各种问题,而且你的程序除了这个流程,其他什么也不能做。

上面的代码运行后,窗口的右边会显示(3 times),告诉你这条语句运行了几次。同时,你可以在屏幕的最上面选择ViewAssistant EditorShow Assistant Editor,打开另一个窗口Assistant Editor来看具体的运行结果。

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语句在特定的事件中跳出循环。.

var cokesLeft var fantasLeft 4
(cokesLeft > (cokesLeft) Cokes left.")
  cokesLeft = cokesLeft (cokesLeft <= fantasLeft{
    break
  }
"You stop drinking Cokes.")

在上面的例子中,你希望只要还有cofe,就可以一直drinking Coke 。然而当你知道冰箱里有汽水时,你可以决定当cofe的数量小于或等于汽水时,选择去喝汽水。当这个条件发生时,你就退出了循环,也就停止了喝咖啡。

var goofOffTime var bossComing 0
(goofOffTime > "Goofing off!")
  goofOffTime = goofOffTime 1
  bossComing = bossComing (goofOffTime == bossComing"Done goofing off." 
  

Continue Statement continue语句

continue语句和break语句非常相似,区别在于,continue不是退出整个循环,只是跳出当前这一轮循环,程序回到循环的开始处,然后进行条件的判断是否执行下一轮循环。.

var numbers (numbers <10(numbers 9{
    numbers = numbers 1
    continue
  }
  (numbers)
  numbers }

"List of World Wars:"var ww 1
(ww <5(ww 3 || ww 4{
    ww = ww "World War (ww)")
  ww "That's the beauty of World War V,Lois. It's so intense it skips over the other two. - Peter Griffin")
.

Optionals可选性

有时候会出现不确定变量是有值还是空值的情况。空值表示该变量赋值为nil.

可选性代表变量要么表示为一个值,要么为nil:

var optionalNumberInt? 5
optionalNumber nil

符号?表示该值是可选的. :

if let number = optionalNumber

if let等同于if.

= optionalNumber  "It is a number""It is not a number"}

Conversion Between Data Types数据类型的转换

Optionals 在变量的类型转换上很有用. 下面的例子是将String转换为Int.

var languagesLearned"3"
var languagesLearnedNum= languagesLearned.toInt( 这里声明了一个初值为"3"的字符串变量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.

toInt()同println()方法一样都是已经实现了的,是一个类的一部分,这个在后面会学到更多。 该方法是将StringInt类型输出. 之所以将languagesLearnedNum声明为可选性,是因为它的值有可能是nil. 比如你要转换的字符串不包含数字,而是像"Hello,World".

输入下面的代码:

let num = languagesLearnedNum   

var tutorialTeam"55"
var editorialTeam 23

var tutorialTeamNum= tutorialTeam.toInt)

let numTutorial = tutorialTeamNum  (numTutorial > editorialTeam{
    (numTutorial) is greater than (editorialTeam)")
  (numTutorial < editorialTeam(numTutorial) is less than (numTutorial) is equal to "Invalid entry"}





http://www.raywenderlich.com/75919/learn-to-code-ios-apps-with-swift-tutorial-1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!