前言
之前开发一直用OC,Swift刚出的时候粗略的了解过一些Swift的皮毛,并没有系统的学习过Swift,现在Swift的API越来越稳定,终于下定决心,重新系统的学习一下Swift
Hello, world!
万种语言开始,都是以Hello, world!开始,我们也一样,从Hello, world!开始我们的Swift学习之旅,首先要明白的是在Swift中是不能用NSlog跟printf的,取而代之的是print,print中,字符串直接用""
而不是像OC中用@""
,所以我们的第一行代码这样实现
print("Hello,world")
这样一来,我们的第一步算完成了,为什么没有;
呢,因为Swift语言中,是可以不写;
的(暗爽)
简单值
Swift中并不需要跟OC一样提前声明变量的类型,Swift只有两种类型,一种是常量let
,一种是变量var
,有趣的是,Swift可以用任何字符来做变量名,包括中文跟emoji,不过为了代码可读性,轻易还是不要搞这种骚东西(手动滑稽),下面我们来试一下这两种声明方法:
var声明
var value = 1
value = 2
可以看见,var
声明的变量是可以在后续的代码中改变的,按OC的理解就相当于声明的普通变量
let声明
如上,
let
声明就相当于OC中的static
变量,声明出来的值,是不能在后续代码中改变的
到这里我们两种基本声明方法就学完了,需要注意的是,如果你需要使用与Swift保留关键字相同的名称作为常量或者变量名,你可以使用反引号`
将关键字包围的方式将其作为名字使用。当然除非你没有办法选择的时候,否则轻易还是不要使用关键字
类型安全和类型推断
Swift 是一个类型安全(type safe)的语言,类型安全可以让我们很直观的了解代码要处理的值的类型,这样就避免了不同类型之间赋值出错的问题。
有了这种类型推断,Swift会自己去选择合适的类型,这样在你的代码编译的时候可以自动推断出最终所需要的类型,这比OC需要自己指定类型强了不知道多少。
ps:Swift在处理浮点型变量的时候,并不会推断为float
类型,而是会推断为Double
类型,这点需要注意
数值类型转换
通常情况来说,项目中一般用int
类型来接受整数类型的数值已经足够了,只有在为了减小内存开支,优化性能的时候才会去使用别的类型,在处理特殊数值的时候也可以显式指定长度,这样可以及时发现数据异常
整数转换
不同整数类型的变量和常量可以存储不同范围的数字。
- Int8 表示在内存里通常占8位,数值范围是:-128~ 127
- Int16 表示在内存里通常占16位,数值是:-32768~ 32767
- Int32 表示在内存里通常占32位,数值是:-2147483648~ 2147483647
- Int16 表示在内存里通常占16位,数值是:-2的63次方~ 2的63-1
不同类型的整数数值不是不能直接运算的,所以我们需要像这样处理一下
let value8 : Int8 = -1
let value16 : Int16 = 123
let value = Int16(value8) + value16
只有相同类型的整数才能互相运算,这样呼应了Swift类型安全的宗旨
整数和浮点型转换
整数和浮点型跟整数转换大同小异,不同类型的浮点型数值也不能直接运算,整数类型和浮点型当然也不能直接运算,转换方法类似整数转换
let int = 1
let double : Double = 2.22
let value = (Double)int + double
布尔值
Swift中只有一种基本的布尔类型,叫Bool
,而他的值跟OC不同的是,Swift中的布尔常量只能用true
和flase
来表示,并不能像OC中用YES
跟NO
表示
let trueBool = true
let flaseBool = false
第一章就学到这里,消化一下,后面会继续学习Swift中一些别的特性,文章中如果有什么不对的地方,还望各位大佬批评指正。