• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

1.Swift基本变量|运算符|控制流

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

     Swift基于cocoa Touch框架,苹果官方为了保证Swift的可靠性,结合多种语言的特性,同时独立了一套属于自己的单独语言,结合了C,C++,OC,Java等语言。

     基本变量:

     1 . swift具有倒推功能,它能够更具结果推算出对应swift语言中的类型

          let: 定义常量,必须进行一次精确赋值

          var:定义变量,可以进行多次赋

          var variable: String = "vairable"

          let  const:Int  = 250      同类变量Int32 Int64

          //String 为变量类型,Int为常量类型,默认是可以省略的,但是Swift变量容易混淆,后续发生更改的时候报错就很难修正,建议最好不要省略;

         var variable: Characters = "A"   

         // Characters 属于字符,如果此处不定义Characters类型,Swift反推类型时会优先自动定义为String类型,所以在定义Character(字符)类型的变量时候一定要加上:Charaters 定义。 它类似于C中的char

      2. 对象创建,Swift改版后需要对象的方法直接改成了 点语法 格式

            // 原来OC设置参数主要通过setXXX,或者 点语法,而Swift中主要采用(参数名字:  参数...)  的形式,而且括号里面的参数可以嵌套

let view = UIView(frame: CGRect(x: 100, y: 200, width: 300, height: 400))

view.backgroundColor = UIColor.redColor()

let btn = UISwitch();     //直接使用  类名+()  初始话实例对象

//对象的 点语法 照样适用

btn.setOn(true, animated: true);

btn.center = CGPoint(x: 50, y: 50)

view.addSubview(btn)

       3. 基本数据类型 

           max, min分别表示该类型的最大数值和最小数值

   var i:Int;   i = 100;  Int.min;  Int.max;  sizeof(Int)

   var ui:UInt; UInt.min; UInt.max; 

   var i8:Int8;   Int8.max;    Int8.min;    

   var ui8:UInt8;  UInt8.max;  UInt8.min; 

   var f1:Float 

   isinfinity 

   Float32 Float  Float64  Float80  Double

   //tpypealias 重新可以将类型进行更名

   typealias MyFloat = Float32    var f6:MyFloat

     4. 常用方法

   /**void属于无,返回值,参数,主要占位使用*/

    sizeof(Void)

   /**swift的中的Bool取值只有ture和false,不再具备OC语言的非0及真*/

    sizeof(Bool)

     字符代表某些Unicode字形集群规范所定义的本地化,或者定制的分割算法。一种特   殊的制服*/

   sizeof(Character)  9bit

   sizeof(String)     24bit

4  /**在c语言中,0代表8进制,在c语言中中015代表15,被swift忽略掉*/

   var x = 15   x =015   x = 00005  x = 100_000_000_000

   x = 185_ 8843_1460   x = 0b1110111  x = 0o15   x = oxff00ff00  y = 1.25E-2

5.  string and characters:

    print(str)    //打印变量

    if secondStr.isEmpty{

    print(“secondStr is empty”)

    secondStr += “abcd”   //字符串相加

}   

    //通过字符数组 创建字符串 [String] 字符串数组,如果是放的字符,需要进行类型标注

        var catCharaters:[Character] = [“C”,”a”,”t”]

        var catString = String(catCharaters)

        /**双引号转意字符  \"*/

var myStr = "\"哦耶啦啦\"---爱因斯坦"

print(myStr)

 

//格式化拼接,前面使用格式化,后面使用数组

var timeStr2 = String(format: "%02d:%02d:%02d", arguments: [hour,minute,second])

       

6. 值类型与引用类型 /**

1.值类型和引用类型,Swift中所有的结构体都是值类型

2.所有的类类型都属于引用型

3.String 值类型(结构体)

4.引用类型地址完全一样,Swift中引用类型常使用public class定义

5.值类型,及结构体类型,赋值后左右两边的地址不一样

*/     

 

7. 运算符:

    var   a,b,c,d

    a =10, b = 2   

    a = b = c = d =100; Swift赋值运算本质属于一个函数,返回值为void类型  ❌

    a + b   a - b  a * b  a/b    -9/4   9/4   

    a > b     a <  b     a !=b     a > b ? a:b  a  +=b   

    var   z:Int ?

    规则:

    -》Swift赋值运算本质属于一个函数,且返回值为viod类型,所有不能进行连等

    -》Swift可以向C语言那样进行+/-* mod运算,取mod符号以除数为准

    -》a++先取a再运算;++a,先运算再取a

    -》var   z:Int ?  其中?为选择类型,这样z可以赋值为????,也能进行打印

    -》 var r = z ! = nil ? z :0  等价于  var r = z  ??  100

    -》 a > b && b < c   a > b || b < c   !(a>b)

   此处你会惊奇的发现 变量c 没有经过初试化缺依然编译通过,需要注意这个坑。这是因为当含有c变量的不等式在前编译器可以检测出来;当含有c变量的不等式在后则编译侥幸通过,但是千万别以为c就可以使用了,如果使用未初始化变量后面程序会崩溃。

 

  控制语句大体可以分为以下三种

  分枝,循环,跳转(一般不用) 

 8.  多分枝If语句

       var score = 90

       if score > =90 {

      print(“A”)

}else if score >= 80 {

      print(“B”)

}else score >= 60 {

      print(“C”)

}else{

     print(“不及格”)

}

 

9. with type,可以不带括号;可以不带break,default下放必须要加上一个逻辑;没有隐式贯穿,如果需要往下执行则使用fallthrough;定义变量不在需要大括号

     var b =2   

     switch  b {

      case 1:

      print(“1”)

      case 2:

      var y =123 

      print(“2”)

      if b ==2 {

       break 

}

     case 3:

      print(“3”)

     default:

      print(“x is other”)

}

 

10. for 循环的基本用法,可以省略括号,可以使用 _ 省略变量,可以使用for in   

      var y =100; var z =200

      /*注意i ++ 时候一定需要有空格*/

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

     print(i)

}    

     for  index in  1…10 {

     print(index)

}

     for  _ in 1…5 {

      print(“下划线参略变量,直接循环”

)

}

 

 

11. for 循环   

       for  ch  in  str1.characters {   print(“1—\(ch)”) } 

       var i = 0   while i < 10 {  print(“i—\(i)”) ; i++ }  

12. do while 中,do被征用做了异常代码处理

       repeat{print(“i —\(i)”  i++)} while i < 9

13 . break 和 continue 与c 的基本用法一致,break结束循环,continue 结束本次循环

      

 

/**结束循环*/

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

    print("i=\(i)")

    if i == 4 {

       break

    }

}

 

/**统计 a e i o u之外的字符有多少个*/

let message = "a place where people can play"

var count = 0

for ch in message.characters {

    switch ch {

    case "a","e","i","o","u":

        continue

    default:

        count++

    }

}

14. loop: 标签, 当你看到一个  xxx: 且该行前面没有代码的东西时,注意,它是一个标示符号。类似于C语言中的goto语句定义的表示,但比那个强大的多,下面通过这两个例子来说明。

/**标签语法,替代了c语言的goto语句*/

var a = 0

loop:while a < 100 {

    a++

    switch a {

    case 20:

        break loop //loop标记循环,break将当前循环停止下来  ,此处直接跳出了while循环(loop:定义在while前面)

    default:

        print("a=\(a)")

    }

}

 

还有更强大的呢,看到没,甭管你有多少重循环,都能一次跳出,太给力了。

/**标准100次循环,在 j == 3的时候通过标签语句借宿外层循环,而不是内层循环*/

outloop:for var i = 0;i<10;i++ {

         for var j = 0;j<10;j++ {

            if j == 3 {

            //break outloop

            continue outloop

           }

           print(j)

    }

}

    

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[转]ObservableSwift - 一个属性监听机制的 Swift 原生替代方案发布时间:2022-07-13
下一篇:
Swift-Framework(一)访问资源文件发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap