Swift learning part 1 - 基础部分

前言

该部分以及后续章节的学习内容,是我依照官方文档(Swift5.1版本)学习后的心得体会,其中有不少与官方文档重叠的内容,也有我自己进行改动和精简的部分。该专栏的目的是为了向广大Swift爱好者提供一个接触入门的途径,也是给我自己提供一个小型知识库,方便开发过程中的技术查询。由于本人知识储备的局限性,文中难免出现错误或偏差,希望大家可以理解并帮助我改正问题。非常感谢!

有兴趣的童鞋可以多学习一下官方文档及相关学习资源:
The Swift Programming Language
The Swift Programming Language In Chinese
Swift Development Resources
Start Developing iOS Apps
Using Swift with Cocoa and Objective-C中文版 by @CocoChnia
@Swift 学习指引

谨记:一定要坚持学习,并锻炼自己独立解决问题的能力!
坚持

Swift 是一门开发 iOS, macOS, watchOS 和 tvOS 应用的新语言。然而,如果你有 C 或者 Objective-C 开发经验的话,你会发现 Swift 的很多内容都是你熟悉的。

Swift 包含了 C 和 Objective-C 上所有基础数据类型,Int 表示整型值; Double 和 Float 表示浮点型值; Bool 是布尔型值;String 是文本型数据。 Swift 还提供了三个基本的集合类型,Array、Set 和 Dictionary ,详见 集合类型。

就像 C 语言一样,Swift 使用变量来进行存储并通过变量名来关联值。在 Swift 中,广泛的使用着值不可变的变量,它们就是常量,而且比 C 语言的常量更强大。在 Swift 中,如果你要处理的值不需要改变,那使用常量可以让你的代码更加安全并且更清晰地表达你的意图。

除了我们熟悉的类型,Swift 还增加了 Objective-C 中没有的高阶数据类型比如元组(Tuple)。元组可以让你创建或者传递一组数据,比如作为函数的返回值时,你可以用一个元组可以返回多个值。

Swift 还增加了可选(Optional)类型,用于处理值缺失的情况。可选表示 “那儿有一个值,并且它等于 x ” 或者 “那儿没有值” 。可选有点像在 Objective-C 中使用 nil ,但是它可以用在任何类型上,不仅仅是类。可选类型比 Objective-C 中的 nil 指针更加安全也更具表现力,它是 Swift 许多强大特性的重要组成部分。

Swift 是一门类型安全的语言,这意味着 Swift 可以让你清楚地知道值的类型。如果你的代码需要一个 String ,类型安全会阻止你不小心传入一个 Int 。同样的,如果你的代码需要一个 String,类型安全会阻止你意外传入一个可选的 String 。类型安全可以帮助你在开发阶段尽早发现并修正错误。

常量和变量

常量和变量把一个名字(比如 welcomeMessage)和一个指定类型的值(比如字符串 “Hello” )关联起来。常量的值一旦设定就不能改变,而变量的值可以随意更改。

声名常量和变量

常量和变量必须在使用前声明,用 let 关键字 声明常量,用 var 关键字声明变量。

let maximumNumber = 10
var currentNumber = 0

可以在一行中声明多个常量或变量,用逗号隔开

var x = 0.0, y = 0.0, z = 0.0

注意:
如果代码中有不需要改变的值,请使用 let 关键字将它声明为常量。只将需要改变的值声明为变量。

类型标注

声明常量或变量的时候可以加上类型标注(type annotation),说明常量或变量中要存储的值的类型。如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。

var name: String = "Tom" // 变量 name 要存储的值的类型是 String 类型
var red, green, blue: Double // 在一行中定义多个同类型的变量

一般来说很少需要写类型标注,如果在声明常量或变量的时候赋了一个初值,Swift可以推断这个常量或变量的类型(类型安全和类型推断)。没有赋初值的话,通过类型标注可以指定常量或变量的类型。

常量和变量的命名

不能以数字开头、不能包含数学符号、箭头、保留的或非法的Unicode码位、连线与制表符;
不能重复声明相同名字的常量或变量,或改变其存储的值的类型,不能将常量与变量进行互转;
如果需要使用Swift保留关键字的名称作为常量或变量名,可以使用反引号 ` 将关键字包围。

let ?? = "dogcow"
name = "Jim"

输出常量和变量

使用print(:separator:terminator:)函数来输出当前常量或变量的值,print(:separator:terminator:) 是一个用来输出一个或多个值到适当输出区的全局函数。

print(name
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值