学任何一门编程语言,都是从"Hello,world!"开始的。Swift编程之旅也由此开始:
print("Hello,World!")
一 数据类型概括
1.通用数据类型
Swift提供的数据类型有:Int, Double, Float, Bool, String
Swift提供的集合类型包括:Array, Dictionary, Set
Swift提供的其他辅助类型: enum, Struct
注意:1.以上类型,跟objective-c相比,都是值类型,而不是引用类型。在程序中使用以上任何一种类型,都考虑为值类型,存在内存的栈区,由系统自动管理内存,在赋值的时候都发生值拷贝操作。
2.String,Array,Dictionary,Set,这些集合类型是否可变,与Objective-C不同,是根据定义这些类型的时候声明的是var还是let来决定,用var表示变量,意为可以进行改变,如果用let表示常量,意为不能变的集合
Swift唯一提供的引用类型:Class
注意:存在内存中的堆区,赋值时引起引用计数的改变,这部分内存由程序开发者管理,深刻理解引用计数原理,注意规避引用闭环的发生,避免造成内存泄漏。
2.特有数据类型
Swift提供特有类型:Tuple,元组,是一个临时存储数据的容器,若要存储的临时数据比较多,则考虑为Struct或Class更为合适
还有可选类型:Int?, Double?, String?等,在任何一类型名称后面加?,就是可选类型。可选类型意为:有相应的值为x,或没有值,它等于nil
二 类型声明
let maximumNumberOfLoginAttempts = 3 //常量 var currentLoginAttempt = 0 //变量 与下面写法具有相等效果 let maximumNumberOfLoginAttempts: Int = 3 //常量 var currentLoginAttempt: Int = 0 //变量
说明:Swift编辑器做类型推断,如果没有声明类型,可通过赋值判断当前类型。变量或常量名称遵从其他编程语言规则,以字母或下划线开头,包含字母、下划线、数字
为提高代码通用性,苹果官方推荐的数据类型应用规范:
整型:只要没有特殊要求,无论是无符号的UInt或者Int32等,一般都用Int来代替
浮点型:涉及到UIKit视图计算的都用CGFloat,其他逻辑运算统一用Double
字面值举例:
let decimalInteger = 17 //十进制 let binaryInteger = 0b10001 //二进制前面加0b let octalInteger = 0o21 //八进制前面加0o let hexadecimalInteger = 0x11 //十六进制前面加0x
类型转换:
let three = 3 let pointOneFourOneFiveNine = 0.14159 let pi = Double(three) + pointOneFourOneFiveNine let anotherPi = 3 + 0.14159
不同类型的变量或常量在做运算时,要统一类型,但是字面值做运算时就不需要转换,因为编辑器自动把3推断为Double类型