zoukankan      html  css  js  c++  java
  • swift3.0 初认识基本数据类型及基本的运算符 --- swift 入门

    一、思维导图

    二、

    1.方法的调用及_的使用

    //1.1--> func
    //func 关键字,name 方法名 , parameters 参数,return type 返回类型 ,function body 表达式
    //1.完整版
    func name(parameters) -> return type {
            function body
        }
    //2.简法版(无参数,无返回值)
    
    func name (){
    }
    //1.2--> "_"
    //1.21 "_"作为外部参数
      sum2(num1: 2, num2: 3)
       sum1(2, 3)
    //MARK:_的使用 private func sum2(num1 x:Int,num2 y:Int){ print(x + y)
    } private func sum1(_ x:Int,_ y:Int){ print(x + y) }

      2. 输出对象

    //1.用“+()”来定义,如下,let是定义常量,var是定义变量
    例 1
     let  c:String = "夜空中"
     let  b:String = "最亮的哪颗星"       
     print ("(c)(b)")
    

     3.创建UI及常量

      3.1 UI及常量和变量

    //1.创建UIView 和按钮     
    let views = UIView(frame: CGRect(x:20, y: 20,  100, height: 100))//FIXME:改变viewsframe
            views.backgroundColor = UIColor.yellow
            view.addSubview(views)
            
            //MARK: 创建一个按钮
            let Button2 = UIButton(type: .contactAdd)
            Button2.backgroundColor = UIColor.red  //FIXME:sfsl
            Button2.frame = views.bounds
            views.addSubview(Button2)
            
            //        Button2 .addTarget(self, action: #selector(button2Click), for:)
            Button2.addTarget(self, action: #selector(button2Click), for: .touchUpInside)
        }
        //MARK:-- methods response
        func button2Click()  {
            print("按钮单击")
        }
    //2.常量和变量
       let a = 10
             let b:Double = 105.3
             // Binary operator '+' cannot be applied to operands of type 'Int' and 'Double'
             print(a+Int(b))                
         var name:String = "Hello Word" //不管是变量还是常量必须初始化,且常量的值不能改变
             name = "我是 Hello Word"
              print(name)
     //3.分支和三运算
     //1 if f
            let a = 10 
            if a > 5 {
                print("a>5")
            }else{
                print("a<5")
            }
            //2 三目
            
    //        a > 5 ? print("a大") : print("a小")
            //或写成
            a > 5 ? print("a大大大") :()

       3.2 常用的判断语句(守护的类型必须是可选类型,否则不可以用guard let 或 if let )

        1. if let

    if let indexPath = sender as? IndexPath{
                vc.person = personList[indexPath.row]
                vc.completion = {
                   self.tableView.reloadRows(at: [indexPath], with: .automatic)
                }
            }

               2. guard let

     //1.格式
     guard let  变量名 = 已定义好的属性 else {//条件不成立时
      return
     }
     //条件成立时
      要赋值的属性 = 变量名(上面定义好的)  
     guard ([gɑːd])  守卫;警戒;护卫队;防护装置vi. 警惕vt. 保卫;监视 gua +rd
     //2.实例
     guard let name = nameText?.text,
             let phone = person?.title,
             let detail = person?.title else{    
              print("不能为空")
               return
         } 
    

         3.创建数组

    //不可变数组
    let array = [返回的类型]() 
    //可变数组
    var array1 = [返回的类型]()
    

     4.分支

    --Switch的使用--
    //1.方法的调用 switchRun(name:"9") //2.方法的实现 private func switchRun(name:String){ //switch 中的case 为数字当没有值时才会用到break //可以对任何值进行判断,不在像objc中局限在整数 //所以分支至少要有一个分支,如果什么也不干用break //可以在case使用多个值 switch name{ case "8": break case "9","10": print("这是对的") default: break } }

     5.循环

        //半开半闭区间,[0,5)
            print("/半开半闭区间,[0,5)")
            for i in 0..<5{
                print("(i)")
            }
            print("闭区间[0,5]")
            //闭区间[0,5]
            for i in 0...5{
                print("(i)")
            }
       //反序,10到0
      for  i in (0...10).revered{
          print("(i)")
    }
    

    三、基本数据类型

    1、基本数据类型
      Int 整型值,分为Int8,Int16,Int32,Int64
      Double和float浮点型
      Bool 布尔值
      String 文本类型值
      
      Int 与 UInt (尽量不要使用UInt,除非你真的需要存储一个和当前平台原生字长相同的无符号整数。除了这种情况,最好使用Int,即使你要存储的值已知是非负的。统一使用Int可以提高代码的可复用性,避免不同类型数字之间的转换,并且匹配数字的类型推断)
      Double与float
     
    2、常量和变量
          2.1 常量在 Swift 中,如果你要处理的值不需要改变,那使用常量可以让你的代码更加安全并且更清晰地表达你的意图。
          2.2 常量和变量必须在使用前声明,用let来声明常量,用var来声明变量。
          2.3 实例
             let max = 10  //不需要强制指定类型,swift会自动转化
             var min = 0
             min = 5
             //声明多个常量或变量用,分开
             let a = 0,b = 1,c = 2
             print(a,b,c)
             print(max,min)
         2.4 类型标注 (如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称)
             2.41 一般来说你很少需要写类型标注。如果你在声明常量或者变量的时候赋了一个初始值,Swift可以推断出这个常量或者变量的类型
             2.42 类型标注实例
             let str1:String = "love"
             print("(str1)")
         2.5 常量和变量的命名 (常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。)
             2.51 let 你好 = "中国"
             print(你好)
     
    3、集合
    4、高级数据类型(元组) 元组可以让你创建或者传递一组数据,比如作为函数的返回值时,你可以用一个元组可以返回多个值
    5、可选类型(?!表示可选解包和强制解包)
    6、安全性 Swift 是一门类型安全的语言,可选类型就是一个很好的例子,在类型不同时swift强制你类型转化,不转化代码会报错
    7、注释,//,/*代码块*/,/* /*代码块一*/,/*代码块N*/*/
    

     四、基本运算符

    与oc不一样的部分

    1、空合运算符

    空合运算符(a ?? b)将对可选类型a进行空判断,如果a包含一个值就进行解包,否则就返回一个默认值b.这个运算符有两个条件:
    1、表达式a必须是Optional类型
    2、默认值b的类型必须要和a存储值的类型保持一致
    
    实例
      let defaultColorName = "red"
       let userDefineColorName:String? = nil    //强制的要初始化,不初始化会出错
       let colorNameToUse = (userDefineColorName ?? defaultColorName)
       print("(colorNameToUse)")

    2、区间运算符

     2.1 闭区间运算符

    闭区间运算符(a...b)定义一个包含从a到b(包括a和b)的所有值的区间,b必须大于a。 ‌ 闭区间运算符在迭代一个区间的所有值时是非常有用的,如在for-in循环中:
    实例:
     //闭区间运算符
            for  index in 1...5{//从1到5,1<=index<=5
                print("(index) * 5 = (index*5)")
            }
    打印结果:
    1 * 5 =5
    2 * 5 =10
    3 * 5 =15
    4 * 5 =20
    5 * 5 =25
    

     2.2半开区间运算符

    半开区间(a..<b)定义一个从a到b但不包括b的区间。 之所以称为半开区间,是因为该区间包含第一个值而不包括最后的值。
    半开区间的实用性在于当你使用一个0始的列表(如数组)时,非常方便地从0数到列表的长度。
    实例:
       半开区间运算符
            let names = ["Anna","Alex","Brian","Jack","xingZai"]
            let count = names.count
            for index in 0..<count{
                print("第(index+1)个人叫(names[index])")
            }
    打印结果:
    第1个人叫Anna
    第2个人叫Alex
    第3个人叫Brian
    第4个人叫Jack
    第5个人叫xingZai
    数组有5个元素,但0..<count只数到4(最后一个元素的下标),因为它是半开区间。
    将来的自己,会感谢现在不放弃的自己!
  • 相关阅读:
    谷歌被墙,怎样给谷歌浏览器加入迅雷下载插件
    python文件和文件夹訪问File and Directory Access
    svn简单介绍
    javaproject积累——树形结构的操作
    Android多线程研究(1)——线程基础及源代码剖析
    Android4.4 Telephony流程分析——彩信(MMS)发送过程
    hadoop优质链接
    Android开发系列(二十一):Spinner的功能和使用方法以及实现列表选择框
    锤子Smartisan T1手机官方4.4.2系统内核版本号信息
    深入研究Clang(五) Clang Lexer代码阅读笔记之Lexer
  • 原文地址:https://www.cnblogs.com/TheYouth/p/6259951.html
Copyright © 2011-2022 走看看