吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 383|回复: 3
收起左侧

[学习记录] Swift语言学习-基本数据类型

[复制链接]
aixiC 发表于 2024-9-25 20:12
本帖最后由 aixiC 于 2024-9-25 20:23 编辑

常量和变量

定义常量
`let constantName = value`


类型安全


Swift是一个类型安全语言,自动进行类型检查,并对类型不匹配的语句报错提示。


在声明常量或变量时,如果没有显式的指定数据类型,Swift就会根据对其的赋值来进行类型推测。
整型和浮点型



多种长度的整型


如:Int8、Int16、Int32、Int64分别表示位长为8、16、32、64位的有符号整型


不同位长的无符号整型


如:UInt8、UInt16、UInt32、UInt64


常用的是整型Int


64位的平台上,Int就是Int64


32位的平台上,Int就是Int32


浮点型


带有小数部分的数的类型


Float为32位浮点数类型


Double为64位浮点数类型
布尔型


布尔型是用来描述逻辑上的真或假的类型。
关键字:Bool它有两个值:true和false
用途:主要用于判断语句中,用来控制程序根据不同的条件来执行不同的分支流程

元组型

定义元组型是由一个或多个数据类型组成的复合类型。其中,每一个数据类型可以是任意类型,并不要求是相同的。
举例说明矩形(长,宽):rectangle(Int,Int)三维坐标(x,y,z):3D_coordinates(Double,Double,Double)天气(年,月,日,温度):weather(Int,Int,Int,Double)
还有什么例子?
读取元组3种读取方式将元组的值赋值给另一个元组通过下标来访问元组中的特定元素在定义元组的时给每个元素命名,就可以通过元素名来读取元组

可选型与nil
当一个变量不一定有值时,可以用可选型来表示。在其它语言中,变量都必然有一个值与其对应。可选型是Swift内建安全特性的一个重要体现 。可选型用来表示一个变量可能有值,也可能为空的情况。这里,用nil来表示空。注意:对于整型来说整数“0”不是nil,字符串型的空字符串“”也不是nil。nil可以理解为变量所对应的存储空间里没有数据。**可选型实例**例如:学生信息包括:姓名、学号、年龄、获奖情况。对于任意一个学生来说,必有姓名、学号和年龄这三个信息。但不是每一个学生都获得过奖励。姓名、学号和年龄可以分别用字符串型、字符串型和整型来描述。而获奖情况比较特殊,获过奖的可以用字符串描述,没有获奖的怎么描述?**Swift用可选型的nil来表示**方案:使用字符串可选型来描述获奖情况。当学生获得过奖励,则获奖情况的值为字符串,反之则为nil。
定义可选型



声明可选型的常量


`let constantName : Type? = initialValue`


举例


声明变量reward,是字符串可选型。


可以赋初值,也可以不赋,缺省值为nil。


注意:在声明可选型变量时,类型必须要显式声明,因为编译器无法根据初始值来推断该变量是否为可选型的。





理解可选型


可以将可选型想象成一个盒子。


可选型可以表示一个实际的值,也可以表示nil。


这相当于盒子里可以装一个实际的值,也可以空着。


但无论装不装实际的值,盒子总是存在的。


学生获奖情况的变量是字符串可选型,可以看成一个盒子。


当有获奖记录时,盒子里就装着获奖信息的字符串“Best Student”;


当没有获奖记录时,盒子就是空的。
拆包


字符串可选型不能直接赋值给字符串型,而要先拆包,变成同类型的数据后才能进行赋值运算。

强制拆包

强制拆包就是在可选型变量后加上“!”,可以理解为打开可选型的盒子,并将其中的数据取出来,被取出的数据是具有实际值的数据类型。
强制拆包 2024-09-24 145404.png
强制拆包带来的新问题当可选型的盒子里没有任何实际数据(可选型等于nil)时,对可选型进行强制拆包将导致系统崩溃。注意:在强制拆包一个可选型之前,要确认该可选型中存在一个实际的值,即该可选型不等于nil。解决方案1运用if语句用if语句来判断强制拆包可选型的结果是否等于nil。如果不相等,说明可选型的盒子里有实际的值,可以放心使用强制拆包的结果;如果相等,说明强制拆包的结果为nil。

屏幕截图2.png

可选型绑定

概念:可选型绑定就是在if或while的条件判断语句中,把可选型赋给一个常量。
如果可选型含有值,则这条赋值语句的布尔值为true,同时该常量取得可选型中含有的值;
如果可选型等于nil,则这条赋值语句的布尔值为false。 屏幕截图3.png

格式
if let constantName = optionalName {
        some statements
} else {
        some statements
}


可选型绑定  VS  强制拆包

可选型绑定是一种安全的可选型拆包的方法,但需要使用条件判断语句。强制拆包使用起来简单直接,但却会带来程序崩溃的风险。根据实际情况选用不同方法在不能确定可选型中是否有值时,应该通过可选型绑定来取值。如果能确定可选型中含有值,则可以使用强制拆包的方式(有风险)。

nil聚合运算

无论可选型中是否有值,都可以通过nil聚合运算来拆包。如果可选型中有值,那么就将其取出来。如果可选型为nil,那么就使用缺省值来替代。
格式valueFromOptional = optionalType ?? defaultValue
“??”为nil聚合运算符。
当optionalType中有值时,将值直接赋给valueFromOptional。当optionalType为nil时,将缺省值defaultValue赋值给valueFromOptional。注意
  • 缺省值的类型必须和可选型拆包后的类型一致。
  • 进行nil聚合运算的对象必须为可选型。



发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

HalfAnElephant 发表于 2024-9-25 23:24
感谢分享! 请问下 swift 语言处 Apple 系产品编程外有没有其他优势呢? 最近同样想学下swift,但担心性价比不高.
zlqhysy 发表于 2024-9-26 09:18
d199212 发表于 2024-9-27 08:37
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-12 15:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表