Swif语法基础 要点归纳(一)

来源:互联网 发布:java web长连接 编辑:程序博客网 时间:2024/06/05 18:24
常量和变量
  • 用let声明常量
     let m = 20
  • 用var声明变量
     var n = 10
  • 类型推导机制
          声明常量或变量时,可以不指定常量/变量类型,编译器会根据初始化值自动推导类型,也可以显示指定变量类型:
     var str:String = "12345"
     var num:UInt = 12
     var i:Float = 3.14
     
数据类型
类型别名
  • 可以使用typealias关键字定义类型别名,跟C语言的typedef作用类似
     typealiasXXInt = Int;
     //Int类型去了以个别名XXInt

运算符
赋值运算符
  • 一对一赋值
     vara = 20
     varb = a
  • N对N赋值
     let(x, y) = (10,20)
  • 跟C/OC不一样,Swift赋值运算符没有返回值
  • OC
inta = 10;
     int b = a =20;
     //以上赋值语句正确,b = 20

Swift
var b = a =20;
if(a= b) { }
//以上赋值语句错误,b没有值,()中的表达式也没有值,可以防止误用=和==
求余运算符
  • 求余结果的符号取决于%左边数字的符号(与C/OC一样)
  • 可以对浮点数求余     
           var z = 8 % 2.5 //0.5
Bool类型
  • 在C语言中,0是假,非0是真,在Swift中Bool类型就两种值:
          true:真
          false:假
  • if语句的条件必须是Bool类型
范围运算符
  • 范围运算符用来表示一个范围,有2种类型的范围运算符
          闭合范围运算符:a…b,表示[a, b],包含a,b
          半闭合范围运算符:a..<b,表示[a, b), 包含a,不包含b
forindex in 0..<5{
   print(index)
}
溢出运算符
每种数据类型都有自己的取值范围,默认情况,一旦赋值一个超出范围的数值,就会产生编译错误或运行时错误。
  • Swift为整形计算提供了5个&开头的益处运算符,可以对超出范围的值进行处理。
          &+、&-、&/、&*、&%
          上溢出
     varx:UInt8= 255;
     vary = x &+ //y的值为0
         
          下溢出
     varx:Int8= -128;
     vary = x &- //y的值为127
 
          除0溢出
     varx = 10;
     vary = x &/ //y的值为0

     varx = 10;
     vary = x &% //y的值为0

元组类型
  • 什么是元组类型?
          元组类型由N个任意类型的数据组成(N >=0)
          组成元组类型的数据称为“元素”
varpoint = (x:10.0, y:20.0)
//point有两个元素,xy是元素名称

letperson = (name: "Job")
//person只有name一个元素

letdata = ()
//空元组
  • 元组的访问
          用元素名称访问
     letvalue = point.x //取值
     point.x =30.0//设值
        
          用元组位置访问
letvalue = point.0//取值
point.0= 30.0 //设值
         
          如果用let修饰一个元组,那么该元组为常量,无法修改元素的值
  • 元组的输出
          可以直接输出元组来查看所有元素的值
           print(point)
  • 使用细节
          可以省略元素名称
     varpoint = (10.0,20.0)
     letperson = (20,"Job")
         
          可以显式指定元素的类型
     letperson:(UInt8,String) = (20,"Job")
          peson的第一个元素只能是UInt类型,第二个元素只能是String类型
          在显示指定元素类型的情况,不能添加元素名称,下面的语句是错误的
     letperson:(UInt8,String) = (age:20, name:"Job")

          可以用多个变量接收元组数据
     var(x, y) = (20,30)//x20y30
     varpoint = (x,y)//point由两个元素组成,分别是2030

          可以将元素赋给多个变量
varpoint = (20,30)
var(x, y) = point //x20y30

可以用_(下划线)忽略某个元素的值,只取出其他元素的值
letperson:(UInt8,String) = (20,"Job")
var(_,name) =person

0 0
原创粉丝点击