Swift学习笔记(简单分支和三目写法)

分支

let x = 10
//1.条件不需要()
//2.语句必须用{} 
//注意:很多公司的代码规范中进制不是使用 {}
if x > 5 {
      print("大了")
}else{
      print("小了")
}

if let /var 和 guard let / var 的用法

func demo (){
     let oName: String? = "PRF"
     let oAge: Int? = 28

      //普通写法
      if oName != nil && oAge != nil {
          print(oName! + String(oAge!) )
      } 

     //if let 连用写法 , 判断对象的值是否为nil
     if let name = oName,
        let age = oAge{// let 可以替换成 var 如果在 {} 有修改值的需要的时候使用var
             //namge 和 age 仅仅在这个 {} 的作用于内生效
             print(name + String(age))
             //此时使用name和age都是不用 `!` 强解包的 ,因为name 和age 必不为空
     }else{
             print("name 或者 age 为 nil")
     }

     //guard let / var 写法 ,当有修改值需求的生活,使用var 否则根据系统建议来使用
    guard let name = oNmae,let age = oAge{
             print ( "name 或者 age 为 nil" )
             return//必须写return
      }
      print (name + String(age)) //代码执行至此说明 name / age 都有值

}

//MARK: 带参数的方法里的分支
func demo2(name:String? , age:Int? ){
    //guard let/var  或者  if let/var 的技巧
    //在接收参数是,使用同名的变量或者产量,在后续的使用中都是费控,不用解包
    guard let name = name , age = age {
            print ( "name 或者 age 为 nil")
            return
    }
    print ( name + String(age))
}

三目

let x = 10
x > 5 ? print("大了") : print("小了") //输出结果大了
//三目的写法基本和OC一致

//可省略后半部分 括号:()表示空执行,如果判断结果为否,则什么都不做
x > 3 ? print("大了") :print() //不输出任何结果

//书写规范:
//问号与条件之间需要有空格,

问号操作符的用法

//案例代码

override func viewDidLoad() {
        super.viewDidLoad()
        demo1(x: 10 , y: 20)
        //如果这里输入的参数是x:nil ,y ;nil ,则程序会崩溃
    }
    
    
    //案例方法==无参数无返回值
    func demo1(x:Int?,y:Int?) {
        print(x! + y!)//当x != nil ,y != nil时,程序没有问题
    }

//优化写法
     
     func demo2 (x: Int? , y: Int?){
        
            print((x ?? 0)  + (y ?? 0)) //这是一种简易的三目写法
     }

//示例代码
    func demo3{
     let name : String? = "老王"
     print("\(name ?? "") 你好")//输出结果:老王你好
     print((name ?? "") + "你好")//输出结果:老王你好,如果name == nil 则输出: 你好
     print(name ?? "" + "你好") //结果:老王  如果name == nil 结果: 老王
    }


你可能感兴趣的:(Swift学习笔记(简单分支和三目写法))