基本数据类型
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
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)。") } 推荐链接 大家都在找: swift:swift代码是什么意思 开发语言:开发语言最新排名 ios:ios手游模拟器
发表评论