笔记整理(Swift基本语法一)

2019-07-11  本文已影响0人  贵族小猫钓鱼

类型推导

1. 如果定义一个标识符时有直接进行赋值,那么标识符后面的类型可以省略
2. 因为Swift 有类型推导,会自动根据后面的赋值来决定前面的标识符的数据类型
3. 可以通过option+鼠标左键 来查看变量的数据类型

基本运算

Swift 中在进行基本运算的时候必须保证类型一致,否则会报错
  1. 相通类型之间才能进行运算
  2. Swift 中没有隐私转换
数据类型类型转换
  1. Int 类型转换成Double类型,使用:Double标识符
  2. Double 转为Int类型,使用:Int标识符

let a = 4
let b = 2.34
let c = Double(a) + b
let d = a + Int(b)

逻辑分支

一、分支介绍

二、if分支语句

1.错误写法
let a = 3
if a {
    不再是非零即真
}
2. 正确的写法
if a > 2{
必须明确指定真假
}

三、三目运算符

let a = 20
let b = 30
let result = a > b ? a : b

四、guard的使用

写法
guard 条件表达式 else{
 break
}

如:
var age = 18
func online(age : Int)->void{

    guard age> 18 else{
    print("未满十八岁禁止上网")
    
    return
    }
    print("符合要求")
}

五、Switch 用法

  1. switch 后面的()可以省略
  2. case语句结束后,break可以省略
  3. case后面可以判断多个条件,多个条件以,隔开
  4. Switch特殊用法
//基本用法
 let sex=1  //0: 男 1:女
 switch sex {
  case 0:
        print("男")
  case 1:
        print("女")
  default: break
        print("其他")
  }
 //<!--case后面多个条件-->
 0: 男 1:女
 let sex=1
 switch sex {
    case 0,1:
        print("正常人")
     default: break
        print("非正常人")
  }
  //Switch 特殊用法
    1.  switch 可以判断浮点型
    let a = 3.14
    switch a{
    case 3.14:
    print("正确")
    default:
    print("错误")
    }
    2.  Switch 可以判断字符串
    let str = "男"
    switch str{
    case "男":
        print("是个哥哥")
    case "女":
        print("是个姐姐")
    default:
        print("其他")
    }
    3.  Switch 支持区间判断
    开区间:0..<10 表示0到10 不包含10 
    开区间:0...10 表示0到10 包含10 
    let score = 79
    switch score {
    case 0..<60:
        print("成绩不及格")
    case 60..<70:
        print("成绩及格")
    case 70..<90:
        print("成绩良好")
    case 90..<99:
        print("成绩优秀")
    default:
        print("满分")
    }

循环的介绍

for 循环的写法

for var i = 0; i < 5; i++{

} 
for i in 0...20{
<!--0到20包含20, 如果不需要获取下标i可以换成"_"-->
} 

while循环

let a = 3
错误的写法:

while (a){
    a 指定条件,不存在非零即真,另外() 可以省略
}
正确的写法:
while a>2 {

}

repeat while 循环

类似于OC中do while循环
let a = 3
repeat {
    a++
    print(a)
}while a<10

字符串的使用

字符串遍历

let str = "helloWord"
var arr = Array<Any>()
for c in str.characters{
  arr.append(c)
}
print(arr)
打印结果:
["h", "e", "l", "l", "o", "W", "o", "r", "d"]

字符串拼接

let str1 = "好好学习"
let str2 = "天天向上"
let str = str1 + str2

//<!--字符串和变量拼接-->
let name = "赵四"
let age = 34
let height = 1.66
print("my name is \(name) age \(age) height \(height)")

//<!--字符串的格式化-->
let min = 2
let second = 8
//<!--第一种方式-->
let timeStr = String(format: "%02d:%02d", min,second)
//<!--第二种方式-->
let mins = 2
let second = 8
let timeStr = String(format: "%02d:%02d", arguments: [mins,second])
print(timeStr)
输出结果:02:08

字符串截取

let urlString = "www.baidu.com"
let header = (urlString as NSString).substring(to: 3)
let md = (urlString as NSString).substring(with: NSMakeRange(4, 5))
let footer = (urlString as NSString).substring(from: 10)
print("头部:\(header)" ,"中间:\(md)","尾部:\(footer)")
输出结果:头部:www 中间:baidu 尾部:com

数组介绍

数组初始化

数组分为可变数组和不可变数组
1.  使用let修饰的数组为可变数组
2. 使用Var修饰的数组为可变数组

数组的定义方式

定义不可变数组
let Arr = ["小米","三星","苹果","华为"]
可变数组
var arrM = [String]()
//增加
arrM.append("12")
//删除
arrM.remove(at: 1)
//修改
arrM[0]= "锤子"
查看
for name in arrM{
print(name)
}
合并数组
for name in Arr{
arrM.append(name)
}

字典介绍

字典的初始化

字典分为可变字典和不可变字典
1.  使用let修饰的数组为可变字典
2. 使用Var修饰的数组为可变字典

数组的定义方式

不可变字典
let dict = ["name":"小王","age":"23","sex":"男",height:165.3]
可变字典
增加
var dictM = [String:Any]()
dictM["name"]="张三"
dictM["age"]=15
dictM["sex"]="男"
dictM["height"]=174.3
删除
dictM.removeValue(forKey: "name")
修改
dictM["name"]="李四"
遍历字典
 for key in dictM.keys{
     print(key)
    }
    
for vaule in dictM.values {
    print(vaule)
}
    
    
for (key,vaule) in dictM{
    print("\(key) :\(vaule)")
}

上一篇下一篇

猜你喜欢

热点阅读