Swift从零开始(一)

前言


之前开发一直用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中的布尔常量只能用trueflase来表示,并不能像OC中用YESNO表示

let trueBool = true
let flaseBool = false

第一章就学到这里,消化一下,后面会继续学习Swift中一些别的特性,文章中如果有什么不对的地方,还望各位大佬批评指正。

你可能感兴趣的:(Swift从零开始(一))