1.Variables
使用Xcode新建一个playground文件,Xcode已经为我们创建了一个变量
var str = "Hello, playground"
为变量更改一个值
str = "Goodbye"
Question:为什么Swift有变量?
程序以某种方式获取数据,并以某种方式对数据进行转换,并将其显示给用户,”以某种方式进行转换“正是魔力所在。
当使用var
创建一个变量后,你可以改变它而无需再次创建一个变量。
但有时候使用变量并不是最好的方式,后面我们再讨论它。
2.Strings and integers
Swift 是一种类型安全的语言,这意味着每个变量必须属于一个特定的类型,上面的str创建时包含”Hello, playground",因此Swift为其指定了String类型。
var age = 18
age包含一个整数,因为分配了类型Int。
字符串和整数是不同的类型,不能混合使用。因此,虽然可以安全地更改str为“Goodbye”,但我不能将其设置为18,因为18是Int而不是一个String类型。
Question:为什么Swift是一种类型安全的语言?
age = "18"
age变量是一个整数类型,可以更改其值,但是不能更改类型,所以将字符串分配给整数变量是不允许的。尽管我们很少犯这样明显的错误,但是您会发现这种类型的安全性可以帮助您每天用Swift编写代码。
想想看:我们只是创建了一个变量,然后试图更改其类型,这显然会失败。但是随着程序规模和复杂性的增长,不可能始终将变量的类型保持在头脑中,因此我们正在有效地将工作转移到Swift上。
3.Multi-line strings
需要多行字符串时可以用以下方式
var str1 = """
This goes
over multiple
lines
"""
var str2 = """
This goes \
over multiple \
lines
"""
如果只想格式化代码,在末尾添加\
,便不会出现换行符。
4.Doubles and Booleans
var pi = 3.141
var awesome = true
Question:为什么Swift既需要Doubles又需要Integers?
Swift提供了几种存储数字的方式,旨在解决不同的问题。Swift不允许它们混合在一起,因为这样做会导致问题。
5.String interpolation
var score = 85
var str = "Your score was \(score)"
实际上字符串插值不限于放置变量,还可以在其中运行代码。
Question:Swift为什么要进行字符串插值?
当需要向用户显示信息时(无论是打印消息,按钮上的文本还是适合您的应用想法的信息),您通常会严重依赖字符串。
当然,我们不仅仅需要静态字符串,因为我们想向用户展示他们可以使用的某种相关数据。因此,Swift为我们提供了字符串内插,作为在运行时将自定义数据注入字符串的一种方式:它用我们提供的数据替换了字符串的一个或多个部分。
6.Constants
let taylor = "swift"
除非要改变值,你应该始终使用常量。
Question:为什么Swift既有常量又有变量?
如果创建了一个变量,但从不更改其值,建议使用常量。这样做还可以避免问题,定义随时随地可以更改的变量,你将失去控制权,
因此在某个时候数据可能被更改或者替换掉。
使用常量,Swift可以确保值永远不变,你不必担心某些情况下值被改变的问题。
7. Type annotations
类型推断:Swift能够根据创建方式来推断事物的类型。
有时候你可以显示的提供类型。
let album: String = "Reputation"
let year: Int = 1989
let height: Double = 1.78
let taylorRocks: Bool = true
明确说明数据的类型,而不是依赖Swift的类型推断
Question:为什么Swift有类型注解?
1.Swift无法推断出应该用哪种类型。
2.希望Swift使用与其默认类型不同的类型。
3.你不想给变量分配一个值。
第一种,例如,当从internet加载一些数据,而你知道该数据是名字,而Swift无法提前知道,所以你应该告诉它。
第二种,正在创建一个Double变量,不必写入.0
var percentage: Double = 99
虽然我们分配了一个整数,但是类型注释表明了percentage类型为Double,
第三种
var name: String
另一个问题什么时候该使用类型注解?
这可能取决于你的代码风格。
8.简单类型总结
1.您可以使用var和创建常量let。最好尽可能多地使用常量。
2.字符串以双引号开头和结尾,但是如果希望它们跨多行运行,则应使用三组双引号。
3.整数保存整数,双精度数保留小数,布尔值保留真或假。
4.字符串插值允许您从其他变量和常量创建字符串,并将其值放在字符串中。
5.Swift使用类型推断为每个变量或常量分配类型,但是您可以根据需要提供显式类型。
网友评论