首页 > 代码库 > Swift学习——Swift基础详解(一)

Swift学习——Swift基础详解(一)

注:由于基础部分在Swift Tour 中已经大体的说明了,所以在详解中不会达到100%的原文释义


Constants and Variables  常量和变量

常量和变量都需要声明名称和类型(作为程序员,这些基础也就不说了),常量一次赋值不能改变,变量的值可以改变



Declaring Constants and Variables   声明常量和变量

常量和变量在使用之前必须要声明,使用let关键字定义常量,var关键字定义变量

下面的例子可以用来定义用户登录的时候最大的尝试次数:

let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0

可以在一行定义多个变量或者常量,用逗号隔开:

var x = 0.0, y = 0.0, z = 0.0



Type Annotations  类型标志

类型标志(类型注释)可以标记你定义的变量或者常量允许存储的类型,在变量/常量的名称后面放置一个冒号,然后留一个空格,然后写上类型的名称

var welcomeMessage: String
这个变量就可以存储String类型了

welcomeMessage = "Hello"
在实际编码过程中,你几乎不需要给变量/常量类型标志,因为当你第一次赋值的时候,Swift已经知道了变量的类型,如果声明变量的时候没有赋值,那Swift才通过类型标志识别变量的类型



Naming Constants and Variables   命名变量和常量

你可以使用任意你喜欢的字符命名变量和常量,包括Unicode编码:

let π = 3.14159
let 你好 = "你好世界"
你妹的,白打了那么多了,因为粘贴一个表情,后面写的都没有了,好桑心啊

在Swift中,对于常量和变量的名称定义宽泛了许多

常量和变量命名的时候不能包含数学符号、箭头、私人定义的Unicode字符,或者用点和横线拼接的字符,也不允许以数字开头,但是数字可以在名称中的其他地方

一旦你用一种确定的类型定义了一个常量或者变量,你就不能用同样的变量名定义其他变量了,也不允许改变变量/常量的类型,变量也不可以转换成常量,常量也不可以转换成变量

如果你想使用Swift关键字作为变量名称,那么小伙伴只能对你说(no zuo no die why you try),既然你这么坚持用的话,Swift也提供了你使用的方法,使用括号把变量名称括起来,像这样(`)

改变变量的值:

var friendlyWelcome = "Hello!"
friendlyWelcome = "Bonjour!"
// friendlyWelcome is now "Bonjour!"
常量的值不能改变,改变会报编译错误:

let languageName = "Swift"
languageName = "Swift++"
// this is a compile-time error - languageName cannot be changed


Printing Constants and Variables    打印常量和变量

可以使用println进行打印:

println(friendlyWelcome)
// prints "Bonjour!
之前用过OC的都知道啦,和NSLog一个功能,C,C++里面也有啊,而且还可以带参数的。

println和print的区别就是:都是用来控制台打印的,println打印之后换行,print打印之后不换行

也可以打印一个字符串:

println("This is a string")
// prints "This is a string
还有一种方法可以将变量或者常量放到字符串中,将变量放入括号()中,在前面加上反斜杠 \ ,如 \(变量.常量)

println("The current value of friendlyWelcome is \(friendlyWelcome)")
// prints "The current value of friendlyWelcome is Bonjour!


Comments    注释

单行注释

// this is a comment
多行注释

/* this is also a comment,
but written over multiple lines */
嵌套注释:

/* this is the start of the first multiline comment
/* this is the second, nested multiline comment */
this is the end of the first multiline comment */

嵌套注释的功能就是可以一次性注释一大段的代码,而且不用管这段代码中间的其他注释



Semicolons    分号

Swift代码可以不写分号,每一行是一个语句,当然写了也可以,如果一行要放两个语句,就用分号隔开

let cat = "cats"; println(cat)
// prints "cats"