The Swift Programming Language中文版 ----Language Guide(二)

本文详细介绍了Swift语言中的基础数据类型,包括整型、浮点数等,并解释了如何使用这些类型以及Swift如何确保类型安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8.分号

与其他语言不同的是,Swift并不强制要求你在一行代码末尾加一个分号。但如果在一行中有两句代码,则必须在第一句代码后加上分号。

let cat = "cat"; println(cat)
// prints "cat"



9.整数


整型即为整数,没有小数部分,如42和-23。整数分有符号和无符号。

Swift提供了提供了有符号和无符号整数8,16,32,和64位的形式。这些整数遵循类似于C的命名规则,一个8位无符号整数类型为UInt8,而一个32位带符号整数为Int32类型。像所有类型的斯威夫特,这些整数类型已资本化的名字。和Swift其他类型一样。这些整型都有一个含有大写字母的名字。


10.整数界限


你可以通过访问一个整型的max或min属性来获取它的最大值或最小值。

let minValue = UInt8.min  // minValue is equal to 0, and is of type UInt8
let maxValue = UInt8.max 

这些属性的值都是适当大小的数字类型。


11.Int(整型)


在大多数情况下,你并不需要在代码中确定整数的指定大小。Swift提供了另外一个数据类型-Int。它与当前平台原生类型的大小相同。

在32位的平台中,Int与Int32相同。

在64位的平台中,Int与Int64相同。

除非你需要使用特定大小的整数。一般情况下使用Int来代替integer。Int可以存储2,147,483,647到-2,147,483,648之间的任何数。


12.UInt(无符号整型)


Swift还提供了一个无符号整数类型Uint,它的大小与当前平台的原生字大小相同。

在32位的平台中,UInt与UInt32相同。

在64位的平台中,UInt与UInt64相同。


13.浮点数

浮点数与小数部分的数字,如3.14159,0.1,和-273.15。浮点类型可以表示比整数类型更广泛的范围内的值,并且可以存储数字, 
是更大或更小的比可以存储在一个Int。 SWIFT提供两个有符号浮点数类型: 
•双代表一个64位浮点数字。使用它时,浮点值必须是非常大的,或 特别精确的。 
•浮点表示一个32位浮点数字。使用它时,浮点值不需要64位精度。

注:double有至少15位十进制数字的精确度,而浮动的精度可以低至6位小数。使用适当的浮点类型取决于你你的代码中需要的值的性质和范围。

14.类型安全和类型判断

Swift是一种类型安全的语言。类型安全的语言鼓励你要搞清楚值的类型代码可以工作。如果您的代码部分需要一个字符串,你不能错误地传递一个诠释。
因为Swift是类型安全的,它会执行编译你的代码和标志的任何类型不匹配的错误时类型检查。这使您能够捕获并尽可能早地在开发过程中修正错误。
类型检查帮助您避免错误,当您正在使用不同类型的值。但是,这并不意味着你必须指定每一个常量和变量所声明的类型。如果不指定值,你需要的类型,Swift使用类型推理来制定出相应的类型。类型推断使编译器自动推断出特定的表达式的类型时,它编译你的代码,只需通过检查您提供的值。
因为类型推断,斯威夫特需要少得多的类型声明不是语言,如C或Objective-C 。常量和变量仍然显式类型,但大部分指定其类型的工作是为你做。
当你声明一个常量或变量的初始值类型推断是特别有用的。这通常是通过赋予文本值(或文字)到所声明的地步了常量或变量进行。 (字面上的值是直接出现在源代码中的值,如下面的例子42和3.14159 。 )

例如,如果您指定42到一个新的常数常值,不用说它是什么类型,Swift推断出你想要的常量是一个诠释,因为你已经初始化它与一些看起来像一个整数

let meaningOfLife = 42
// meaningOfLife is inferred to be of type Int

同样,如果你不指定类型的浮点字面值,Swift推断出你想要创建一个Double。
let pi = 3.14159
// pi is inferred to be of type Double
Swift总是选择Double(而非Float)时推断浮点数类型。 
如果你把在一个表达式中整数和浮点常量,一个Double类型会从上下文推断:
let anotherPi = 3 + 0.14159
// anotherPi is also inferred to be of type Double

15.整型常量

整型常量可以写成: 
•一个十进制数,不带前缀 
•一个二进制数,用前缀0b 
•一个八进制数,用0°前缀 
•一个十六进制数,以0x前缀

所有这些整型常量的有17的十进制值:

let decimalInteger = 17
let binaryInteger = 0b10001       // 17 in binary notation
let octalInteger = 0o21           // 17 in octal notation
let hexadecimalInteger = 0x11

浮点数可以是十进制(不带前缀)或十六进制(以0x前缀)。它们必须始终在小数点的两侧(或十六进制数)。他们也可以有一个可选的指数,由一个大写或小写e表示十进制浮点数表示,或大写或小写p表示十六进制浮点数。

十进制数用exp指数表示时,基数乘以10exp:

• 1.25e2的意思是1.25×102,或125.0.

• 1.25e-2的意思是1.25×10-2,或0.0125.

十六进制数用EXP指数表示时,基部数乘以2EXP:

• 0xFp2的意思是15×22,或60.0.


• 0xFp-2的意思是15×2-2,或3.75.

这些所有的浮点常量都有一个十进制值12.1875。

let decimalDouble = 12.1875
let exponentDouble = 1.21875e1
let hexadecimalDouble = 0xC.3p0
数字文本可以包含额外的格式,来使它们更容易阅读。这两个整数和浮点数可以被填充 
额外的零,并且可以包含下划线,用来帮助提高可读性。无论是任何类型的格式都不会影响数字的值。

let paddedDouble = 000123.456
let oneMillion = 1_000_000
let justOverOneMillion = 1_000_000.000_000_1





内容概要:本文档详细介绍了一个基于MATLAB实现的跨尺度注意力机制(CSA)结合Transformer编码器的多变量时间序列预测项目。项目旨在精准捕捉多尺度时间序列特征,提升多变量时间序列的预测性能,降低模型计算复杂度与训练时间,增强模型的解释性和可视化能力。通过跨尺度注意力机制,模型可以同时捕获局部细节和全局趋势,显著提升预测精度和泛化能力。文档还探讨了项目面临的挑战,如多尺度特征融合、多变量复杂依赖关系、计算资源瓶颈等问题,并提出了相应的解决方案。此外,项目模型架构包括跨尺度注意力机制模块、Transformer编码器层和输出预测层,文档最后提供了部分MATLAB代码示例。 适合人群:具备一定编程基础,尤其是熟悉MATLAB和深度学习的科研人员、工程师和研究生。 使用场景及目标:①需要处理多变量、多尺度时间序列数据的研究和应用场景,如金融市场分析、气象预测、工业设备监控、交通流量预测等;②希望深入了解跨尺度注意力机制和Transformer编码器在时间序列预测中的应用;③希望通过MATLAB实现高效的多变量时间序列预测模型,提升预测精度和模型解释性。 其他说明:此项目不仅提供了一种新的技术路径来处理复杂的时间序列数据,还推动了多领域多变量时间序列应用的创新。文档中的代码示例和详细的模型描述有助于读者快速理解和复现该项目,促进学术和技术交流。建议读者在实践中结合自己的数据集进行调试和优化,以达到最佳的预测效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值