国际惯例,一般学习一门新的言语,都是从‘Hello, World!’开始的
咱们创立一个程序,输出一句Hello, World!
,因为现在学习的是根底语法,所以咱们能够在Xcode上的Playground上编写测试代码。
- 首先翻开Xcode,创立一个Playground文件
- 接下来在生成的文件中增加
print
句子输出结果,如下图
到这儿,你已经完结第一个程序了,接下来,开始讲变量的声明与赋值
在Swift中,变量是用来存储数据的容器。声明一个变量便是告知编译器咱们要运用一个特定的内存空间来存储数据。赋值是将数据放入已声明的变量中。
-
声明变量
幻想一下,咱们有一个“房子”(变量),这个房子有一个门商标(变量名),但没有详细的地址(值)。
例如,咱们运用
var
关键字声明一个名为name
的变量,但没有赋值:var name: String
这儿,
name
是一个字符串类型的变量,此时,name
变量就像一个空房子,咱们只知道它的门商标,但不知道详细的地址。幻想一下,咱们有一个“房子”(变量)。这个房子有一个门商标(变量名),但没有详细的地址(值)。
-
变量的赋值
现在,咱们知道了这个房子的门商标,但咱们想知道这个房子详细在哪里。于是,咱们为这个房子赋予一个“地址”(值)。
例如,咱们给
name
变量赋值,赋值是将数据放入已声明的变量中。咱们运用等号=
来进行赋值操作。name = "张三的家"
现在,
name
变量不仅有门商标(变量名),还有详细的地址(值)。因为该变量
name
用var
来声明的,在Swift中,var
表明该变量能够多次赋值,例如,咱们将“房子”从头设置一个地址:name = "李四的家"
-
变量的运用
当咱们想运用这个房子的地址时,咱们只需求说出它的门商标(变量名),然后说出详细的地址(值)。
例如,咱们能够打印出
name
变量的值:print(name)
这将输出“李四的家”,假如没有从头赋值的话,将会输出第一次赋的值“张三的家”,这便是咱们为
name
变量赋予的地址。
-
let
和var
在Swift中,运用
let
(“let there be”)来声明常量,表明不行改动,运用var
(“variable”)来声明变量,表明能够多次改动,let
只能够赋值一次,而var
能够赋值多次。 如下图:“nameVar”变量用
var
修饰,所以改动值能够正常运转输出,而”nameLet“用let
修饰,表明常量,所以从头赋值的话就会报错无法运转程序。以下是一些常量声明的比如:
//一分钟有60秒 let minute: Int = 60 // 一天有24小时 let day: Int = 24 // 圆周率估算到小数点后两位3.14 let pi: Double = 3.14 // 我国的中英文名字 let chineseName: String = "我国" let englishName: String = "China"
-
类型注解 和 类型揣度
Swift是一种强类型言语,这意味着咱们需求明确指定变量的类型,格式为在常量或许变量名后面加上一个冒号和空格,然后加上类型名称。可是,从Swift 3开始,Swift引入了类型揣度功用,能够让编译器主动揣度变量的类型。如上面常量的比如是增加了类型注解的,你也能够用以下的方法声明常量或许变量:
let minute = 60 // 编译器会主动揣度minute的类型为Int let pi = 3.14 // 编译器会主动揣度pi的类型为Double let chineseName = "我国" // 编译器会主动揣度chineseName的类型为String
在以上几个比如中,咱们没有显式地声明变量的类型,而是让编译器主动揣度。这关于简化代码非常有用。可是,假如编译器无法确认变量的类型,咱们需求显式地声明它,这个后面再讲。
-
常量和变量的命名
常量和变量名能够包含简直一切的字符,包含 Unicode 字符,但不能用数字或符号(除了下划线
_
)最初声明变量,也不能用系统保留关键字(例如let
和var
),变量的命名一般都要有意义,不要太随意取名字,否则代码量多的时分阅览了解难度就很大了,不利于团队协作写代码,一般都用英文命名,好的命名能更好的了解代码:let name = "jack" let = 3.14159 let 你好世界 = "Hello,World!" let = "fruit"
-
注释
//
,///
,/*这儿写注释*/
,/*!这儿写注释*/
这些都是注释句子,解释代码用的,编译器运转的时分会疏忽注释代码。一般增加注释是为了便利阅览代码,或许为了理清代码逻辑。
总结
所以,变量的声明就像是为一个房子定好门商标,而变量的赋值则是为这个房子找到详细的地址。当咱们需求运用这个地址时,咱们只需提及房子的门商标。