什么是变量?
在编程中,变量用于将数据存储在内存中,可在整个程序中使用。必须给每个变量一个唯一的名称,称为identifier 。将变量视为保存信息的容器很有帮助,以后可以更改这些信息。
从技术上讲,您可以将变量视为用于在其中存储一些书的书包,以后可以将这些书替换为其他书。
如何在Swift中声明变量?
在Swift中,我们使用var关键字声明变量。
例:
var siteName:String
print(siteName)
我们已经声明了一个名为siteName的String
类型的变量,这意味着它只能容纳字符串值。访问Swift Strings以了解有关字符串的更多信息。
如果您尝试在Playground中运行以上代码,则会给我们带来编译时错误(在初始化之前使用变量),因为它不存储/包含任何值。
如何在Swift中为变量赋值?
您可以使用赋值运算符 (=)在变量中赋值。
示例1:声明并将值分配给变量
var siteName:String
siteName = "Apple.com"
print(siteName)
要么
您还可以将值inline分配为
var siteName:String = "Apple.com"
print(siteName)
运行该程序时,输出为:
Apple.com
变量siteName现在包含值“ Apple.com”。
由于Swift是一种类型推断语言,因此它可以自动推断(知道)“ Apple.com”为String
并将siteName声明为String
。因此,您甚至可以将声明中的类型(:String)
删除为:
示例2:在Swift中类型推断的变量
var siteName = "Apple.com"
print(siteName)
运行该程序时,输出为:
Apple.com
由于siteName是一个变量,因此您也可以通过简单地使用赋值运算符但不使用var
关键字来更改其值:
示例3:更改变量的值
var siteName = "Apple.com"
// Assigning a new value to siteName
siteName = "Programiz.com"
print(siteName)
运行该程序时,输出为:
Programiz.com
什么是常数?
常量是变量的一种特殊类型,其值不能更改。将常量视为保存了以后无法更改的信息的容器是有帮助的。
从技术上讲,您可以将常量视为用于存储某些书籍的书包,而将这些书放入书包后就无法替换。
如何在Swift中声明常量?
在Swift中,我们使用let
关键字声明一个变量。
例:
let siteName:String
print(siteName)
我们已经声明了一个名为String
名为siteName的常量。
如果您尝试运行以上代码,则会给我们带来编译时错误(初始化之前使用常量),因为它不包含/保留任何值。
如何在Swift中为常量分配值?
您可以使用赋值运算符 (=)在与变量相同的常量中赋值。
示例4:声明一个值并将其分配给一个常量
let siteName:String
siteName = "Apple.com"
print(siteName)
要么
您还可以将值inline分配为
let siteName:String = "Apple.com"
运行该程序时,输出为:
Apple.com
现在,常量siteName包含/持有值“ Apple.com”。
像变量一样,您可以通过以下方式从声明中删除类型( :String
):
示例5:在Swift中类型推断的常量
let siteName = "Apple.com"
print(siteName)
运行该程序时,输出为:
Apple.com
但是与变量不同,您不能更改常量的值。所以,你不能做
示例6:更改常量的值(不允许)
let siteName = "Apple.com"
siteName = "Programiz.com" //compile time error
print(siteName)
上面的陈述给我们带来了一个错误,因为正如我们所说的,一旦存储了数据就不能更改常量的值。这是变量和常量之间的关键区别。
什么是字面量?
字面量是直接出现在源代码中的值。它可以是数字, 字符或字符串等。例如:“ Hello,World”,12、23.0,“ C”是字面量的简单示例。 字面量常用于初始化变量或常量(将值分配给它们)。
例如:
let siteName = "Apple.com"
在上面的表达式中, siteName是变量,而"Apple.com"
是字面量。
Swift中字面量的类型
整数字面量
它表示十进制,二进制,八进制或十六进制值。它有四种类型。
- 二进制字面量
- 代表二进制值。
- 以
0b
开头。
- 八进制字面量
- 代表八进制值。
- 以
0o
开头。
- 十六进制字面量
- 代表十六进制值。
- 以
0x
。
- 小数字面量
- 代表十进制值。
- 一无所有。您在整数字面量声明的所有内容均为十进制类型。
示例7:如何在Swift中使用整数字面量 ?
let binaryNumber = 0b11111111
print(binaryNumber)
print(1231)
运行该程序时,输出为:
255
1231
在上面的程序中,有两个整数字面量 0b11111111
(二进制字面量)和1231
(十进制字面量)。 11111111
的十进制值为255 ,因此print(binaryNumber)
语句在屏幕上输出255。
同样, print(1231)
在控制台中输出十进制值255 。
字符串和字符 字面量
字符串 字面量是由双引号引起来的字符序列,而字符 字面量是由双引号引起来的单个字符 。
示例8:如何在Swift中使用字符串和字符 字面量 ?
let someCharacter:Character = "C"
let someString:String = "Swift is awesome"
在上面的程序中, "C"
是字符 字面量,而"Swift is awesome"
是字符串 字面量。
浮点字面量
它用于初始化数据类型为float
和double
变量。它可以有两种类型:
小数:
它可以具有可选的指数,由大写或小写e表示。对于指数为exp的十进制数,将基数乘以10 exp :
示例9:如何在Swift中使用十进制字面量 ?
let someFloat = 12.23
let someAnotherFloat = 3.14e2
print(someFloat)
print(someAnotherFloat)
运行该程序时,输出为:
12.23
314.0
在上面的程序12.23
和3.14e2
是浮点字面量。 3.14e2
用指数表示,等于3.14 * 10 2 。
十六进制:
十六进制浮点数必须具有一个由大写或小写p表示的指数。对于具有exp指数的十六进制数,基数乘以2 exp :
示例10:如何在Swift中使用十六进制字面量 ?
let someFloat = 0xFp10
let someAnotherFloat = 0xFp-12
print(someFloat)
print(someAnotherFloat)
运行该程序时,输出为:
15360.0
0.003662109375
在上面的程序中, 0xFp10
和0xFp-12
是浮点字面量。 0xFp10
用指数表示,等于15 * 210(F表示为十进制的15)。因此, print(someFloat)
在屏幕上输出15360.0。
同样, 0xFp-12
等于15 * 2-12。因此, print(someAnotherFloat)
在屏幕上输出0.003662109375。
布尔字面量
快速有两个布尔字面量 。他们是true
false.
。
示例11:如何在Swift中使用布尔字面量 ?
let result:Bool = false
在上面的程序中, false
是一个布尔字面量 ,它被分配给常量result 。
变量和常量的规则和最佳做法
- 选择一个有意义的名称。例如, var name比var n更有意义。
- 使用camelCase表示法声明变量或常量。驼峰表示法以小写字母开头。例如:
var studentName let studentAge let address
- 您也可以定义变量和常量而无需对其进行标记。不使用名称标记意味着您将不在程序中使用它。在许多情况下,您想创建一个未使用的变量。在这种情况下,您可以将_占位符用作:
var _ = "Apple.com"//string initialized but not stored in a variable let _ = "Apple.com"
_ = "Apple.com"
- 如果只需要设置一次值,而无需在程序中再次更改它,则使用常量。但是,如果以后需要更改它,请使用变量。
- 常量和变量名称不能包含空格字符,数学符号,箭头,专用(或无效)的Unicode代码点或线条和框形图字符。它们也不能以数字开头,尽管数字可能包含在名称中的其他位置。
例:
var 12 = "Apple.com" //gives a compile error: expected pattern var @hello = “Hello" //gives a compile error: expected pattern