Swift语言指南(四)--类型安全和类型推断

简介: Swift是一门类型安全语言,类型安全语言需要代码里值的类型非常明确。如果你的代码中有部分值需要String类型,你就不能错误地传递Int。 鉴于Swift的类型安全,编译代码时,Swift会执行类型检查并将任何类型不匹配的地方标记为错误,使你在开发当中尽可能早的捕获并修正错误。

Swift是一门类型安全语言,类型安全语言需要代码里值的类型非常明确。如果你的代码中有部分值需要String类型,你就不能错误地传递Int

鉴于Swift的类型安全,编译代码时,Swift会执行类型检查并将任何类型不匹配的地方标记为错误,使你在开发当中尽可能早的捕获并修正错误。

类型检查有助于你在操作不同值的类型时避免犯错。但这并不意味着你必须在声明每一个常量或变量时去检查类型,如果你不检查所需值的类型,Swift会执行类型推断来计算出相应地类型。

类型推断让编译器在编译代码时,根据你提供的值,自动推测出特定表达式的类型。

基于类型推断,Swift对类型声明的需要远比C或Objective-C语言要少得多。常量与变量仍然有明确的类型,但明确指定类型的工作已经由编译器代你完成。

当你声明一个常量或变量并赋予一个初始值时,类型判断尤其有用。通常通过在声明时赋字面值literal value,或称“字面量literal)实现(类型判断)。(字面值指直接出现在源代码中的值,如下例中的 423.14159

比如说,你给一个新的常量赋一个字面值42但未指定其类型时,Swift会推断你想要一个Int型的常量,因为你初始化时提供的数字像一个整数:

1 let meaningOfLife = 42
2 // meaningOfLife 被推断为Int

同样的,如果不为浮点数字面量指定类型时,Swift会推断你想要创建一个Double型:

1 let pi = 3.14159
2 // pi 被推断为Double

Swift在推断浮点数数字时通常会选用Double(而不是Float)。

如果你在表达式中结合了整数和浮点数字面量,Swift会根据上下文中推断返回Double型:

1 let anotherPi = 3 + 0.14159
2 // anotherPi 会被推断为Double

上例中,字面值3自身不属于某个类型,也未明确指定类型,根据当前附加部分的浮点数字面量推断并适当地输出Double型。

 

谢谢,Swifter-QQ群:362232993,同好者进~ 

Fork:https://github.com/Joejo/Swift-lesson-for-chinese

 

 

 

 

 

 

目录
相关文章
|
4月前
|
Swift iOS开发
Swift 语言: 什么是协议(Protocol)?如何实现和使用协议?
Swift 语言: 什么是协议(Protocol)?如何实现和使用协议?
150 2
|
4月前
|
存储 安全 Swift
Swift 语言:什么是 Swift 的泛型(Generics)?
Swift 语言:什么是 Swift 的泛型(Generics)?
73 0
|
2月前
|
安全 编译器 Swift
探索iOS开发:Swift语言的现代魔法
【7月更文挑战第11天】本文深入探讨了Swift编程语言,它如何革新iOS开发领域,以及它为开发者带来的独特优势。我们将从Swift的基础语法出发,通过实际案例分析其性能优化技巧,最后讨论Swift在跨平台开发中的潜力。文章旨在为读者提供一个全面而深入的视角,了解Swift不仅仅是一门语言,更是一种推动创新的力量。
|
4月前
|
安全 Swift Android开发
构建移动应用:Swift vs Kotlin —— 两大主流语言的对决
【5月更文挑战第11天】Swift与Kotlin在移动应用开发中各有优势。Swift是iOS开发的首选,以其简洁语法、高性能和类型安全著称;而Kotlin是Android的官方推荐语言,以其与Java的无缝互操作、空安全特性和简洁代码受到青睐。两者在语法简洁性、性能和社区支持上表现优秀,但平台兼容性不同。开发者应根据项目需求和目标平台选择合适的语言。
|
4月前
|
安全 Swift iOS开发
【Swift 开发专栏】Swift 语言入门指南
【4月更文挑战第30天】Swift是苹果公司的现代编程语言,以其高效、安全和简洁深受喜爱。它融合了类型推断、闭包和泛型等特性,提供强大的内存管理,支持iOS、macOS等多个平台开发。基础语法包括变量、常量、数据类型、运算符和控制流语句。高级特性涵盖函数、闭包、类与结构体、协议以及泛型。学习Swift能为开发者奠定坚实基础。
44 0
|
4月前
|
安全 Swift
Swift 语言:什么是可选类型(Optional)?如何处理可选类型的安全解包?
Swift的可选类型是处理值可能缺失的类,用?表示。它们能表示有值或无值状态。安全解包用`if let`或`guard let`避免崩溃,而强制解包`!`则风险较高,若值为`nil`会触发运行时错误。
35 0
|
4月前
|
存储 Swift
Swift 语言:什么是值类型和引用类型?Swift 中有哪些值类型和引用类型?
Swift 语言:什么是值类型和引用类型?Swift 中有哪些值类型和引用类型?
74 2
|
4月前
|
存储 Swift
Swift 语言:什么是闭包(Closure)?它们与函数的区别是什么?
Swift 语言:什么是闭包(Closure)?它们与函数的区别是什么?
97 1
|
4月前
|
安全 Swift
Swift 语言:什么是可选类型(Optional)?如何处理可选类型的安全解包?
Swift 语言:什么是可选类型(Optional)?如何处理可选类型的安全解包?
63 1
|
存储 Swift 开发者
Swift专题讲解十五——类型构造(一)
Swift专题讲解十五——类型构造
244 0
Swift专题讲解十五——类型构造(一)