Welcom to Swift

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
1、第一个程序
 
  
 
import Foundation
 
  
 
println(“hello world”)
 
  
 
2、常用数据类型
 
int/UInt/Double/Float/Bool/String/Array/Dictionary/元组(tuple)/可选类型(Optional)
 
  
 
3、变量常量必须设初始值
 
变量    var myName = “zhangsan”
 
常量    let myPhone = “18336070719”
 
  
 
4、整型变现形式
 
二进制: 前缀为0b
 
八进制:前缀为0o
 
十六进制:前缀为0x
 
  
 
5、类型别名
 
使用typealias定义,类似与typedef
 
  
 
typealias NSInteger = Int
 
var value:NSInteger = 12
 
  
 
6、swift不支持隐式类型转换。需要显示类型转换 String(23):把23转换成字符串
 
字符格式化\(items)
 
let apples = 3
 
let applesSummary = “I hava \(apples) apples”
 
  
 
7、数组
 
let emtptArray Array = [ ]
 
插入:
 
往数组里面加元素(末尾)  emtptArray.append(“pingguo”);
 
插入emptpt.insert(“pingguo”,atIndex:3);
 
emtptArrayi +=“pingguo “
 
  
 
emtptArray.capacity   //数组的容量2的次方,值大于等于emtptArray.count,
 
修改:
 
array[1] = “天空”
 
array[4…7] = [“bananas”,”apple”]   //把下标为4,5,6,7的元素替换
 
 删除:
 
array.removeLast()  //删除最后一个元素
 
  
 
array.removeAtIndex(4)  
 
  
 
array.removeAll()   //删除所有
 
 新建数组
 
var array = Array(count:3,repeateValue:2.5);
 
 遍历:
 
1、for item in array{
 
    println(item)
 
}
 
 2、for(index,value) in enumerate(array)
 
{
 
  println(“Time \(index+1):\(value)")
 
}
 
8、字典
 
  
 
1、let emptyDic1 = [:]   //声明一个空的字典
 
  
 
2、let empty2 = Dictionary<String,Float>()   //确定key和value的类型
 
  
 
3、var ariport = [“TYP”:”Tkkyo”,”Dub”:”Bublin"]
 
  
 
 删除
 
airports[“THO”] = nil
 
  
 
airports.removeValueForKey[“TYP”]
 
 遍历
 
for key in airports.keys
 
{//遍历所有的keys
 
}
 
  
 
for(key,value) in airport {
 
   println("\(key):\(value)")
 
}
 
  
 
9元组
 
可以将任意数据类型组装成一个元素
 
元组在作为函数返回值的时候特别适用
 
 let (x,y) = (1,2)
 
let http404Error = (404,”Not Found”)   //定义一个由Int 和String做成的元组
 
  
 
 let gtt = (status:300,desc:”OK”)
 
  
 
  
 
可选类型(Optional)
 
1、nil不能用于非可选类型
 
2、如果代码中的常量或者变量需要适配值不存在,务必将她声明称可选类型
 
3、如果定义的可选类型的对象不提供默认值,该对象将自动设置为nil
 
这个值要么存在,并且等于x;要么就不存在
 
  
 
let name = "zhanggui"
 
let number = "124"
 
  
 
let ss:Int? = name.toInt()
 
println(ss)
 
  
 
  
 
10?使用场景
 
1、声明Optional值变量
 
2、用在Optional操作中,用来判断是否响应后面的操作
 
  
 
  
 
11解包:用!(1、强制对可选量进行解包;2、声明隐式解包可选类型时,用于类中的属性)
 
  
 
//解包方法一
 
var strValue:String? = "This is my Book"
 
println(strValue!)   //解包,确定strValue的值一定存在,不需要每次都验证他的值是否存在
 
  
 
  
 
let stringValue = strValue!.hashValue   //必须解包才能获取可选量的属性或者方法
 
println(stringValue)
 
//解包方法二  选择绑定
 
if let sValue = strValue
 
{
 
    let stringValue = sValue.hashValue
 
    println(stringValue)
 
  
 
}
 
//隐式解包可选类型,在定义的时加!
 
let assumedString:String! = "A apple"
 
println(assumedString)
 
println(assumedString.hashValue)

 

posted @   zhanggui  阅读(329)  评论(0编辑  收藏  举报
编辑推荐:
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
点击右上角即可分享
微信分享提示