Swift 变量,常量和字面量
在本文中,您将了解Swift编程中的变量,常量,字面量及其示例。
什么是变量?
在编程中,变量用于将数据存储在内存中,可在整个程序中使用。但必须给每个变量一个唯一的名称,称为identifier(标识符)。可以将变量看作保存信息的容器,并且以后可以更改这些信息。
从技术上讲,您可以将变量视为用于在其中存储书包的一些书,以后也可以将这些书替换为其他书籍。
如何在Swift中声明变量?
在Swift中,我们使用var关键字声明变量。
var siteName:String print(siteName)
我们已经声明了一个名为 siteNametype 的String变量,这意味着它只能保存字符串值。访问Swift字符串可以了解有关字符串的更多信息。
如果您尝试在Playground中运行以上代码,则会给我们带来编译时错误(在初始化之前使用变量),因为它没有存储/包含任何值。
如何在Swift中为变量赋值?
您可以使用赋值运算符(=)在变量中赋值。
示例1:声明并将值分配给变量
var siteName:String siteName = "Apple.com" print(siteName)
或者
您还可以将该值内联赋值为:
var siteName:String = "Apple.com" print(siteName)
运行该程序时,输出为:
Apple.com
变量 siteName,现在包含值“ Apple.com”。
由于Swift是一种类型推断语言,因此它可以自动推断(知道)“ Apple.com”是一个字符串,并声明siteName为String类型。因此,您甚至可以将(:String)声明中的类型删除为:
示例2:在Swift中类型推断的变量
var siteName = "Apple.com" print(siteName)
运行该程序时,输出为:
Apple.com
由于siteName是一个变量,因此您还可以通过简单地使用赋值运算符来更改其值,而无需使用var关键字,例如:
示例3:更改变量的值
var siteName = "Apple.com" // 为siteName分配一个新值 siteName = "(cainiaoplus.com)" print(siteName)
运行该程序时,输出为:
(cainiaoplus.com)
什么是常量?
常量是变量的一种特殊类型,其值不能更改。将常量视为保存以后无法更改的信息的容器。
从技术上讲,您可以将常量视为用于存储某些书籍的书包,而将这些书放入书包后就无法替换。
如何在Swift中声明常量?
在Swift中,我们使用 let 关键字来声明变量。
let siteName:String print(siteName)
我们已经声明了一个名为 siteNametype 的常量字符串。
如果您尝试运行以上代码,则会给我们带来编译时错误(初始化之前使用常量),因为它不包含/保留任何值。
如何在Swift中为常量分配值?
您可以使用赋值运算符(=)在与变量相同的常量中赋值。
示例4:声明一个值并将其分配给一个常量
let siteName:String siteName = "Apple.com" print(siteName)
或者
也可以将值内联指定为
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 = "(cainiaoplus.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。
布尔字面量
swift中有两个布尔字面值。他们分别是 true 和 false.。
示例11:如何在Swift中使用布尔字面量?
let result:Bool = false
在上面的程序中,false 是一个布尔常量,它被分配给常量result。
变量和常量的规则和最佳做法
选择一个有意义的名称。例如,var name 比 var n 更有意义。
使用camelCase 表示法声明变量或常量。驼峰表示法是以小写字母开头。例如:
var studentName let studentAge let address
您也可以定义变量和常量而无需对其进行标记。 不使用名称标记意味着您将不在程序中使用它。 在许多情况下,您想创建一个未使用的变量。 在这种情况下,您可以将_占位符用作:
var _ = "Apple.com" //字符串已初始化,但未存储在变量中 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