基本数据类型

Int、UInt:整数型、非负整数Float、Double:单精度浮点数、双精度浮点数Bool:布偶值String、Character:字符串、字符

其他类型

Array, Dictionary:数组、字典Struct:结构体Class:类var:变量let:常量,必须在声明的时候赋值

类型别名

typealias:类型别名

typealias newname = type

/// 定义Feet类型为Int类型

typealias Feet = Int

类型标注

// 方法一

var varB:Float

varB = 3.14159

print(varB)

// 方法二

let constB:Float = 3.14159

print(constB)

可选类型

在 Swift 中,普通的变量或常量不能赋值为 nil(空值),但是可选类型的变量或常量可以,用于表示一个值可能为nil(空值)的情况,用问号❓表示

// 两种写法等价

var optionalInteger: Int?

var optionalInteger: Optional

强制解析:当你确定可选类型确实包含值之后,你可以在可选的名字后面加一个感叹号!来获取值。

// myString是String类型,且是可选类型,可能为空

var myString:String?

// myString为Hello, Swift

myString = "Hello, Swift!"

// 强制解析myString,我知道它是存在值的

// 如果myString为nil会报错

print(myString!)

自动解析:你可以在声明可选变量时使用感叹号!替换问号?。这样可选变量在使用时就不需要再加一个感叹号!来获取值,它会自动解析。

// 自动解析

var myString:String!

myString = "Hello, Swift!"

print(myString)

print输出

\()的使用

let name = "菜鸟教程"

let site = "http://www.runoob.com"

print("\(name)的官网地址为:\(site)")

转义字符

转义字符含义\0空字符\\反斜线 \\n换行符\r回车符\’单引号\"双引号

其他进制表示

二进制前缀为 0b,八进制前缀为 0o,十六进制前缀为 0x,十进制没有前缀

let decimalInteger = 17 // 17 - 十进制表示

let binaryInteger = 0b10001 // 17 - 二进制表示

let octalInteger = 0o21 // 17 - 八进制表示

let hexadecimalInteger = 0x11 // 17 - 十六进制表示

区间运算符

1...5 区间值为 1, 2, 3, 4 和 51..< 5 区间值为 1, 2, 3, 和 4

for index in 1...5 {

print("闭区间运算符:")

}

for index in 1..<5 {

print("半开区间运算符:")

}

合并空值运算符:??

合并空值运算符 a ?? b 如果可选项 a 有值则展开,如果没有值,是 nil,则返回默认值 b表达式 a 必须是一个可选类型,表达式 b 必须与 a 的存储类型相同合并空值运算符,实际上是三元运算符作用到 Optional 上的缩写 a != nil ? a! : b如果 a 的值是非空,b的值将不会被考虑,也就是合并空值运算符是短路的

函数

runoob:函数名, name、site:参数,String:返回值

func runoob(name: String, site: String) -> String {

return name + site

}

// 调用

print(runoob(name: "菜鸟教程:", site: "www.runoob.com"))

不带参数函数

func funcname() -> datatype {

return datatype

}

没有返回值

func runoob(site: String) {

print("官网:\(site)")

}

runoob(site: "http://www.baidu.com")

可变参数

func vari(members: N...) {

for i in members {

print(i)

}

}

vari(members: 4,3,5)

vari(members: 4.5, 3.1, 5.6)

vari(members: "Google", "Baidu", "Runoob")

元组tuple类型让多个值作为一个复合值从函数中返回

func minMax(array: [Int]) -> (min: Int, max: Int) {

var currentMin = array[0]

var currentMax = array[0]

for value in array[1..

if value < currentMin {

currentMin = value

} else if value > currentMax {

currentMax = value

}

}

return (currentMin, currentMax)

}

let bounds = minMax(array: [8, -6, 2, 109, 3, 71])

print("最小值为 \(bounds.min) ,最大值为 \(bounds.max)")

枚举

// 定义枚举

enum DayWeek {

case SUNDAY

case MONDAT

case TUESDAY

case WEDNESDAY

case THURSDAY

case FRIDAY

case SATURDAY

}

// 快捷方式

enum DayWeek {

case SUNDAY, MONDAT, TUESDAY

}

// 使用枚举

var weekDay = DayWeek.TUESDAY

// 修改方法

weekDay = DayWeek.SATURDAY

// 简写方法

weekDay = .SATURDAY

原始值

枚举可以是字符串,字符,或者任何整型值或浮点型值。每个原始值在它的枚举声明中必须是唯一的 在原始值为整数的枚举时,不需要显式的为每一个成员赋值,Swift会自动为你赋值,隐式赋值的值依次递增1,如果第一个值没有被赋初值,将会被自动置为0。

enum Month: Int {

case January = 1

case February

case March

}

// 快捷方式

enum Month: Int {

case January = 1, February, March

}

let month = Month.March.rawValue

print("数字月份为: \(month)。")

相关值 可以存放不同类型的枚举值

enum Student{

case Name(String)

case Mark(Int,Int,Int)

}

var studDetails = Student.Name("Runoob")

var studMarks = Student.Mark(98,97,95)

switch studMarks {

case Student.Name(let studName):

print("学生的名字是: \(studName)。")

case Student.Mark(let Mark1, let Mark2, let Mark3):

print("学生的成绩是: \(Mark1),\(Mark2),\(Mark3)。")

}

推荐链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: