1.swift 空格不像c、c++、java那样完全忽略,swift对空格有一定的要求。运算符不能直接跟在变量或者常量后面。
//下面的写法会报错
let a =3 + 2
//正确的写法-推荐
let a = 3 + 2
//下面的写法也可以-不推荐
let a = 3+2
2.控制台输出
let a = 3 + 2
//直接输出变量,需要加\并用()包含
print("\(a)")
print("123")
3. let 用于定义常量,定义完后不能修改 ,var 用于定义变量,可以修改,swift可以自动识别属性类别。
4.数据类型:
Int:长度和平台有关系
32位平台上Int和Int32长度相同
64位平台上Int和Int64长度相同
UInt:无符号的UInt
32位平台上Int和UInt32长度相同
64位平台上Int和UInt64长度相同
整数类型需要注意以下几点:
在 32 位系统上, Int 和 Int32 长度相同。
在 64 位系统上, Int 和 Int64 长度相同。
在 32 位系统上, UInt 和 UInt32 长度相同。
在 64 位系统上, UInt 和 UInt64 长度相同。
Int8, Int16, Int32, Int64 分别表示 8 位, 16 位, 32 位, 和 64 位的有符号整数形式。
UInt8, UInt16, UInt32, UInt64 分别表示 8 位, 16 位, 32 位 和 64 位的无符号整数形式。
浮点数:
Float:32位浮点数
Double:64位浮点数
Double精度很高。
布尔值:Bool,值为true和false
字符串:String,如:"hello"
字符:Character,指的是单个字母,如:"h"
可选类型:Optional
类型别名,用typealias定义,如:
typealias myInt = Int
var kk:myInt = 10
kk = 20
print("\(kk)")
类型推断
//类型推断为Int
var varA = 10
//类型推断为Double
var varB = 3.1415
//类型推断为Double
var varC = 3 + 3.14
5.变量
变量名可以由字母,数字和下划线组成。
变量名需要以字母或下划线开始。
Swift 是一个区分大小写的语言,所以字母大写与小写是不一样的。
变量名也可以使用简单的 Unicode 字符,如下实例:
var _var = "Hello, Swift!"
print(_var)
var 你好 = "你好"
print(你好)
6.可选类型
var myStr = "dhjshdj"
myStr = "45454"
print("\(myStr)")
let myStr2:String!
myStr2 = "+++"
print("\(myStr2!)")
print(myStr2 + myStr)
var myStr3:String?
myStr3 = "45454"
print("\(myStr3!)")
//可选绑定
var mylkk:String?
mylkk = "sdhjhsjdh"
if let ppp = mylkk {
print("字符串为=\(ppp)")
}else{
print("字符串为无值")
}
7.for循环
for index in 1...5 {
print("\(index)")
}
let someInts:[Int] = [10,20,30]
for index2 in someInts{
print("\(index2)")
}
8.字符串
let sa = "sdksjdk"
let sa2 = String("shjdhjshdj")
let sa3 = String.init("shjdhjshdj")
print("sa=\(sa)\n sa2=\(sa2)\n sa3=\(sa3)")
if sa.isEmpty {
print("非空")
}else{
print("为空")
}
//字符串长度
print("字符串长度=\(sa.count)")
//字符串是否相等
if sa == sa2 {
print("==")
}else{
print("!==")
}
if sa.hasPrefix("sd") {
print("含有sd前缀")
}else{
print("不含有sd前缀")
}
if sa.hasSuffix("dk") {
print("含有dk后缀")
}else{
print("不含有dk后缀")
}
//字符串转化为整形
let intStr:String = "1000"
let mmInt:Int? = Int(intStr)
print("mmint=\(String(describing: mmInt))")
//遍历字符串
for ch in sa {
print(ch)
}
9.数组
//数组
var someArr = [String]()
var someArr2 = [Int](repeating: 0, count: 5)
var someArr3 = ["se","we","ewqw"]
var someArr4:[String] = ["se","we","ewqw"]
//取值
var someVar = someArr4[0]
//数组拼接
someArr4.append("55")
someArr4 += ["4444"]
//数组修改
someArr4[0] = "66"
//遍历数组
for somePa in someArr4 {
print(somePa)
}
for (index,item) in someArr4.enumerated() {
print("index=\(index)的值=\(item)\n")
}
//合并数组
var someArr5 = someArr3 + someArr4
for (index,item) in someArr5.enumerated() {
print("index2=\(index)的值=\(item)\n")
}
//数组的元素个数
print("someArr5的元素个数=\(someArr5.count)")
//数组是否为空
if someArr5.isEmpty {
print("数组元素为空")
}else{
print("数组元素不为空")
}
10.字典
//空字典
var someDic = [Int:String]()
//创建实例字典
var someDic2:[Int:String] = [1:"1",2:"2",3:"3"]
//访问字典
var someValue = someDic2[1]
//修改字典
var oldValue = someDic2.updateValue("4", forKey: 1)
//移除key-value对
var removeValue = someDic2.removeValue(forKey: 3)
var someDic3:[Int:String] = [1:"12",2:"34",3:"67"]
someDic3[2] = nil
//遍历字典1
for (key,value) in someDic2 {
print("key=\(key),value=\(value)")
}
//遍历字典-2
for (key,value) in someDic2.enumerated() {
print("key2=\(key),value2=\(value)")
}
//转化为数组
var keysArr = [Int](someDic3.keys)
var valuesArr = [String](someDic3.values)
//有多少键值对
var dicCount = someDic3.count
//isEmpty
var empty = someDic3.isEmpty