• swift 第一课 基础知识-1


    1. 基本的打印:

    print("这是学习 swift 的第一课")
    
      var varA = 1
    
      print("a 的值是 (varA)")
    
      //注:字符串打印参数时,参数是这样的 (参数)

    2. var 变量 , let 常量:

     2.1 使用类型推断,计算机自己判断类型

     var  a = 1 // (Int 类型)
    
     var  b = 1.0//(Double 类型)
    
     let   c = "创建个字符串,怎么样" //(String 类型)
    
     //注:var 定义的是变量 :值是可以修改的
    
     a = 2 //(不会报错)
    
     c = "修改下字符串"  //(报错 这个值 是不可以修改的)

     2.2 自己规定类型

     var intA :Int = 5
    
     let  string :String = "常量的字符串"

    3. 控制语句:

      let score = 60 //及格分数
    
      let scoreArr = [91,93,12,14,47,67,98] // 分数的数组
    
      let count = scoreArr.count

      3.1 判断是否及格

     func  judge(sco:Int){
             if  sco < score {
    
                print("不合格分数是 (sco)")
              }  
         }
    
       //或者使用简单的switch 语句 可以更细致分析分数
    
        func judge(sco:Int){
                let pass = (sco > score)
                switch pass {
                case true:
                    print("及格的分数是 (sco)")
    //                fallthrough; // 贯穿效果的语句 ,这里暂时不使用
                default:
                    print("不及格的分数是 (sco)")
                }
            }

     3.2 遍历数组的元素的几种方法

     //for 循环的遍历:
    
      for s in scoreArr {
                print("分数是 (s)")
                judge(sco: s)
            }
            
       for i in 0...count-1{
                print("分数是 (scoreArr[i])")
                judge(sco: scoreArr[i])
            }
            
        for j in 0..<count{
                print("分数是 (scoreArr[j])")
                judge(sco: scoreArr[j])
             }
       
    
      //while 循环的遍历:   
            var index = 0
            while index < count {      
                judge(sco: scoreArr[index])
                 index += 1
            }

    4. 函数的定义和使用:

       func testConnect(v1:String, v2:String) -> String {//有参数 又返回值
            return v1 + " " + v2;
        }
     //  调用: 
        var connectString = self.testConnect(v1: "hello", v2: "world")
            print("connect string is (connectString)")
    
    
        func testLog(){//无参数 无返回值
            print ("log 成功")
        }
    
       // 调用:
        self.testLog()
        
        func logString(logString:String)  {//有参数 无返回
            print (logString)
        }
    //    调用:
    self.logString(logString: "logSuccess")
    
    
        func testBool() -> Bool {//无参数 有返回
            return true
        }
       
        func testParement() -> (String,String,String) {//多个返回值
            return ("parement1","parement2","parement3")
        }
    //     调用:
     let (parement1,parement2,parement3) = self.testParement()
    
    
        func addParement(parement : Int) -> Int {//函数中包含函数
            var v1 = parement
            func add(){//是一个函数
                v1 += 5
            }
            add()
            return v1
        }
    //    调用: 
     let result = self.addParement(parement: 10)
    
    
        func funcPointer( isBool : Bool ) ->( (Int) -> Int)  { //返回 函数指针
           func addOne( num:Int ) -> Int{
                return num+1;
            }
            func subtractOne( num:Int ) ->Int {
                return num-1;
            }
            if isBool {
              return  addOne
            }
            return subtractOne
        }
    //    调用:
    let  resultPinter = self.funcPointer(isBool: false)
            let resu = resultPinter(5)
    
    
        func hasAnyMatch(arr : Array<Int> ,condition:(Int) -> Bool) -> Bool {
            for s in arr {
                if condition(s) {
                    return true
                }
            }
                return false
        }
     
        func  lessThanSixty(s :Int) -> Bool {
            if s < 60 {
                return true
            }else{
            return false
            }
        }
    //  调用:
    if self.hasAnyMatch(arr: scoreArr, condition: lessThanSixty) {//把lessThanSixty 
    
    //这个函数名字 当做参数 传入方法
       
             print("含有不及格的")
            }else{
                print("都是及格的")
            }

    5.基本数据类型:

     var p1 = 100;
    
        // 字符串:
            let p2 = "value is " + String(p1) //这里包换一个强转的方法
            print("p1 is: (p1),p2 is: (p2)")
    
       //  数组  : 
    
           var p3 = ["ios","andriod","symbian"]
            print("p3 is: (p3)")
            p3[0] = "ios/swift" //修改数组元素
            print("p3 is: (p3)")
            p3.append("ios/oc")// 末尾添加元素
            p3.insert("windows phone", at: 0)// 指定位置添加元素
            print("p3 is (p3)"
            p3.removeFirst()//删除元素
            p3.removeAll()//删除元素
            print("p3 is (p3)")
           
    
         //字典:
            var p4 :Dictionary = [
                "name":"Bob",
                "age":28,
                "professional":"计算机开发"
                ] as [String : Any]
         
            for (key,value) in p4 {
                print("key is:(key),value is:(value)")
            }
            p4["score"] = 100;//添加
        
            let p5 = p4.keys
            for key in p5{
                print("(key) = (p4[key])")
            }
    
          //元祖:
    
      let http404Error = (404, "Not Found")
    
      print("The status code is (http404Error.0)")

     6. 闭包:

     // 方法 :
    
           func hasConnditionMatch(arr:Array<Any>,value:Int,
                                conndition:(Int,Int)->Bool) -> Bool {
            for item in arr{
                if  conndition(item as! Int,value){
                    return true;
                }
            }
            return false;
        }
        
    //    调用:
    
           var arr = [20,30,23,34,5,54,55,6,53,4]
            
            var v2 = hasConnditionMatch(arr: arr,value: 40,conndition: {
                (num:Int,value:Int)->Bool in
                return num>value;
            });
            
            print("v2 value is:(v2)")
           
            var v3 = hasConnditionMatch(arr: arr,value: 60,conndition: {
                                      return $0 > $1;
            });
            
            print("v3 value is:(v3)")
        //注:闭包 让各个函数之间的通信比较方便
    

     7. 枚举

         enum Direction{
            case North,South,East,West
           }
          enum Direction1{
                case North
                case South
                case East
                case West
            }
        注 :这两种定义方式是一样的效果
     
            var d1 = Direction.East
            d1 =  .West / /已经知道d1 是枚举的类型 ,所以可以直接使用 点语法
            
            var d2 :Direction = .East
            switch d1 {
            case .East:print("指向东方")
            case .West:print("指向西方")
            case .North:print("指向北方")
            case .South:print("指向南方")
            default:
                print("没有这个方向")
            }
          

          enum phoneType:Int{
                case andriod = 0 ,ios ,windows,macOS
            }
            注: 枚举值是可以 有数值类型的
           

           var  type = phoneType.ios
           

           let t = type.rawValue//找到是第几个枚举,枚举值 转化成 Int 值
            print("raw value is :(t)")
           
            var type1 = phoneType.init(rawValue: 3)//获取对应的枚举, 把 Int 转化为 枚举
            print("type1 is :(type1)")

     8.结构体:

       struct point {
                var x = 0;
                var y = 0;
            };
            
            var point1 = point(x:100,y:200)
            print("point1 (point1.x) (point1.y)")

    结束语:

      学习 swift 的第一天 ,没有接触太深入的东东,自学从最简单的开始,会坚持

  • 相关阅读:
    scrapy 第一个案例(爬取腾讯招聘职位信息)
    scrapy 代码调试用 shell
    scrapy 命令行创建 启动 跟踪
    scrapy 手动编写模板
    scrapy安装
    爬虫之xpath用法
    爬虫之 beautifusoup4
    抓包工具fiddler
    12306登录爬虫 session版本
    Drainage Ditches(dinic)
  • 原文地址:https://www.cnblogs.com/Bob-blogs/p/6394545.html
Copyright © 2020-2023  润新知