swift基本应用2
//Int Float
let a:Int = 12;
//let var
let str="hello"
//str.characters.count长度
"123\(str)3456"
let str2=String(format:"%02d:02d",1,2)
let str3=String(format:"%02d-%02d",arguments:[1,2])
print(str2)
print(str3)
//str2.substringToIndex(<#T##index: Index##Index#>)
//字符串其他操作
//转换
let str4:NSString=str2 as NSString
//不可变数组Array
let array1 = ["A","2","3"];
//initWint / init在swift转化()
let array2=[String]()
//数组元素个数.count
//数组便利 for-in(明确指出数组类型)
for temp in array1 as [String] {
print(temp.characters.count)
}
//元组便利
for (index,value)in array1.enumerate()
{
print("index=\(index),value=\(value)")
}
//可变数组
var mutabArray=[String]()
mutabArray.append("我")
mutabArray.append("擦")
//mutabArray.append("我靠")
//mutabArray.removeAll()
//字典Dictionary
let dict=["key1":"value1","key2":"value2","key3":"value3"]
print(dict["key1"])
//for-in
for(tempkey,tempValue)in dict
{
print("index=\(tempkey),value=\(tempValue)")
}
//可变字典(合并)
var dict3=["key":"value"]
for (tempKey,tempvalue)in dict{
//如果key存在的则是一个更新建值对操作。。。不然是增加键值对
dict3[tempKey]=tempvalue
}
//如果一个值可能为nil 那么这个值可选 用?标识
// 可选类型不能直接使用,必须用强制解包, !强制解包 对nil强制解包,会崩溃
/*
var a1 : String?
a1 = "12345"
//(a1??"123")判断如果为nil就为a1 否就为123
print(a1!.characters.count)
*/
//if没有非零就真 只有true false 两种情况
/*
let temovalue=10
if temovalue>5{
print("tempvalue>5")
}
*/
//可选类型条件分支 let常量 var变量
let str1 : String? = "hello"
//(1) if-let 是对可选类型判断,如果可选类型为nil,则不执行代码块,如果不为空则用tempStr接受可选
if let tempStr = str1
{
print(tempStr)
}
//(2)if-let-where跟if-let相似,where是对面定义局部变量在做判断
if let tempStr=str1 where tempStr.characters.count>2
{
print("")
}
//guard-let-else()
//如果为可选类型str为nil,则执行code代码块,最后return,不为nil就强制解包赋值tempStr这样在{}外面就可以使用tempStr
//duard let tempStr=str else{
//code
//return
//}
//switch不局限判断整形,可以是多种型 小括号省略,,,大括号不能case后面至少有一条执行语句!!! 并且case后面可以省略,break可以不写,default要写
let f=3.2
switch f {
case 3.0:
print("=====3.0")
case 3.1:
print("====3.1")
case 3.2:
print("3.2")
default:
print("default")
}
/*现在遗弃
for (var i=0;i<5;i++){
}
*/
//for var i = 0;i < 5; i++ {
//
//print(i+1)
//
//}
// 0。。。。5[0,5]
/*
for i in 0..<5{
print("i=\(i)")
}
*/
//枚举(枚举可以关联浮点型,字符串)
//关联如果是整形Int,会默认递增上去,不是Int,必须每个关联上
enum Month{
case January
case February
case March
case April
}
//let month = Month.January 明确变量就就可以直接点 .枚举 没有默认的关联词
let month:Month = .February
var month1 = Month.January
month1 = .February
switch month{
case .January:
// print("hashValue=\(month.hashValue),rawValue\(month.rawValue)")
print(month)
case .February:
print(month)
case .March:
print(month)
case .April:
print(month)
}