首先很关键的两个点:
一,调用方法统一用点语法
二,创建对象统一用小括号的形式,比如:CGRect,再比如
let view :UIView = UIView()
3.优先用常量(let),即使是用let定义的对象,其属性还是可以更改地,(可以想象成一个人,但是衣服是可以改变滴)
3.1 swift偏向于把前缀等多余的命名给去掉
4.字符串直接双引号
let str = "I am a little String"
5.枚举可以直接用点语法,比如:
btn.setTitle("按钮",for:.normal)
6.额外ps:有一个很好的练习工具:playground貌似从xcode6开始就有的,之前没留意
7.基本类型的首字母要大写,比如
Int Bool Double
8.类型推导(即“类型省略”),个人不建议用,理由:阅读性不强,容易出错,不过,确实有所简便。
9.打印:print代替NSLog
10.通过option + 鼠标左键来查看标识符的类型,之前也有,只是强调一下。
11.swift中进行基本运算,必须保证类型一致,否则会出错。理由:swift中没有隐式转换。(这就比oc麻烦了),
let a = 10
let b = 10.3
var c = Double(a) + b
//但是Int(b)这样的话,会变成10,会不准,注意了
12.if(没有非0(nil)即真(这就比oc差点了),并且是用true/false的
13.oc中的方法中的参数是没有用小括号括起来的,但是swift有,貌似swift想用小括号来统一,
14.额外强调一下,if中有if的这种写法,可读性是非常差的
15.guard语法,翻译过来有“守卫”的意思,顾名思义,其写法之一:
func online(age:Int){
guard 判断句 else{
print("")
return
}
print("")
}
//有层层“守卫”的意思,写法上比if可读性强
16.switch与oc的区别:
1.其后面的()小括号可以省略
2.case语句结束时可以不加break
3.switch的case可以判断多个条件:case 0,1:
4.除整型外,还可以判断浮点型,字符串,区间
17.区间类型:
如果是0到9,只有,
0..<10或者0...9这两种写法,没有-1<..<10这种写法
18.for语法只支持区间遍历
如:
for i in 0..<10{
}
19.swift开发中,如果一个变量或者常量暂时不用,可以用_下划线来代替(对性能好),
for _ in 0..<10{
}
20.swift不支持i++或者i--
只能这样写:i+= 1 或者i -=1
21.string是一个结构体,性能更高,
NSString是一个oc的对象,性能略差
string支持直接遍历
swift提供String和NSString的无缝转换
22.取字符串的长度与oc不同,:str.characters.count
23.字符串的拼接:
1.一般的话,直接加号:str + str2
2.与非字符串的拼接 \(标识符),但是这种只是非常简便的拼接
3.格式转换的拼接
let min = 3
let second = 12
let timeStr = string(format:"%02d:%02d",min,second)
02d的意思是不足两位的用0补齐
24.字符串的截取
let urlString = "I am a little string"
方式一:
//将String 类型转成NSString类型,再进行截取:as NSString
let header1 = (urlString as NSString).substring(to:3)
let range1 = NSMakeRange(4,5)
let middle1 = (urlString as NSString).substring(with:range1)
let footer1 = (urlString as NSString).substring(from:10)
//其实就是对to, with,from这几个关键词的应用
方式二:
//直接使用String类型方法,进行截取
let headerIndex = urlString.index(urlString.startIndex,offsetBy:3)
let header2 = urlString.substring(to:headerIndex)
let startIndex = urlString.index(urlString.startIndex,offsetBy:4)
let endIndex = urlString.index(urlString.startIndex,offsetBy:9)
let range = Range(startIndex..<endIndex)
let middle2 = urlString.substring(with:range)
let footerIndex = urlString.index(urlString.endIndex,offsetBy:-3) //-3的意思是从末尾开始数
let footer2 = urlString.substring(from:footerIndex)
网友评论