设为首页 加入收藏

TOP

swift 2.2 语法 (上)(一)
2017-10-13 10:33:18 】 浏览:7033
Tags:swift 2.2 语法

前言:
1.此文中的语法会根据Swift的升级变动而更新。
2.如果需要请移步 -> swift2.2 语法(中)swift 2.2语法(下)

Swift与OC中常见的区别

  • 导入框架
    • OC:

       #import <UIKit>
       #import "AFNetWorking.h"
      
    • Swift:

       import UIKit
      
  • 定义标识符

    • OC:

       int i = 0;
      
    • Swift:

       // 不可变标识符
       let i = 0  或 let i : Int = 0
      
       // 可变标识符
       var i = 0  或 var i : Int = 0
      
  • ";"号的使用
    • OC:每个语句后都必须加上;以示结尾
    • Swift:

      1.如果在一行中只有一条语句,那么语句结束时 ";" 号可以省略

      2.如果一行中有多条,那么需要以 ";" 进行分割

常量和变量

  • 在定义一个标识符时,必须明确告诉编译器这个标识符是变量还是常量
  • 常量,需要在定义最前面加上 'let',定义后不可修改
  • 变量,需要在定义最前面加上 'var',定义后可以修改
    • 格式:let/var 标识符名称 : 类型 = 10;


 import UIKit
 
 // 定义一个常量
 let a : Int = 0    //  或 let a = 0
 // 因为常量不可修改,所以 a = 1 的是错误的写法
 
 // 定义一个变量
 var b : Int = 0    //  或 var b = 0
 // 因为变量可以修改,所以来修改下变量
 b = 1
 
  • 常量使用注意
    • 在开发中优先使用常量,只有发现该标识符需要修改时,再改成变量(保证数据更加安全)
    • 常量本质:指向的内存地址不可修改,但通过内存地址找到对应的对象,就可以修改对象内部属性


    //  创建一个常量指向UIView并修改内部属性
    let view : UIView = UIView()
    //  设置尺寸
    view.frame = CGRectMake(0, 0, 150, 150)
    //  设置背景颜色
     = UIColor.greenColor()
    
    //  定义一个常量保存尺寸信息
    let rect = CGRectMake(0, 0, 150, 150)
    //  定义一个变量指向UIView并切换到UIButton
    var tempView : UIView = UIView(frame: rect)
    //  设置背景颜色
    tempView.backgroundColor = UIColor.redColor()
    //  切换变量指向的View
    tempView = UIButton(type: .Custom)
    

swift中数据类型

  • 介绍
    • Swift中的数据类型也有:整型/浮点型/对象类型/结构体类型等
      • 整型
        • 有符号
          • Int8 : 有符号8位整型
          • Int16 : 有符号16位整型
          • Int32 : 有符号32位整型
          • Int64 : 有符号64位整型
          • Int : 和平台相关(默认,相当于OC的NSInteger)
        • 无符号
          • UInt8 : 无符号8位整型
          • UInt16 : 无符号16位整型
          • UInt32 : 无符号32位整型
          • UInt64 : 无符号64位整型
          • UInt : 和平台相关(常用,相当于OC的NSUInteger)(默认)
        • 浮点型
          • Float : 32位浮点型
          • Double : 64浮点型(默认)

类型推导

  • Swift是强类型语言
  • Swift中任何一个标识符都有明确的类型
  • 注意:
    • Swift中在定义一个标识符时,有直接给该标识符进行赋值,那么标识符后面的类型可以省略(因为类型推导会自动根据后面赋值的类型推导出前面标识符的类型)
    • 在Swift中可以通过option + 鼠标左键,可以查看某个标识符的类型


//  定义一个Int类型的常量
let a : Int = 15
//  因为有类型推导的特性,所以上面的语句可以简写为
let a = 15  //  编译器会自动根据右边值得类型判定数据类型

//  定义一个浮点类型的常量
let b : Double = 3.14
//  因为有类型推导的特性,所以上面的语句可以简写为
let b = 3.14    //  因为右边是浮点型数据,所以编译器会判定常量类型为浮点型

基本运算

  • 在Swift中,不同类型的数据类型之间不能进行运算(因为Swift中没有隐式转换)
  • 如果数据类型不一致,就需要转化数据类型,使类型一致


//  相同类型运算
let a = 15
let b = 20
//  求和
let sum = a + b


//  不同类型运算
let a = 30.0
let b = 15
//  转换类型
let tempA = Int(a)
//  求和
let sum = tempA + b

判断分支

  • 介绍
    • 判断分支指if/switch/三目运算符等判断语句
    • 通过判断分支可以控制程序的执行顺序
  • if判断
    • if后面的()可以省略掉
    • 在Swift中,判断语句必须有明确的真假
      • if后面的判断句没有非0(nil)即真概念
      • if后面的判断句必须明确真假(Bool) --> true/false


      let a = 15
      
      if a > 11{
          print(a)
      }
      
      //  因为Swift中,只有声明成可选类型,才能判断是否为空
      let view : UIView? = UIView()
      
      if view != nil {
      
      view!.backgroundColor = UIColor.blueColor()
      
      }
      
  • 三目运算符(和OC一样,没有别的区别)


let a = 15
let b = 20

var result = a > b ? a : b

print(result)
  • guard(守卫)使用
    • guard是Swift2.0新增的语法
    • 它与if语句非常类似,设计的目的是提高程序的可读性
    • guard语句必须跟上else,{}内必须跟上break/continue/return


/* 假设成绩为100分,60以下为不及格 */

//  定义一个常量
let a = 99

//  定义一个test函数,参数Int类型
func test(a : Int) {
    
    guard a >= 60 else {
        
        print("不及格")
        return
    }
    
    print("优秀")
}

//  调用函数
test(a)
  • switch判断
    • 介绍
      • 苹果对Switch进行了大大的增强,使其拥有其他语言没有的特性
    • 使用
      • 基本用法和OC一样
      • switch后面的()可以省略
      • case后的break可以省略(默认会自动填补break)


    
    let a = 0
    
    switch a {
    case 0 :
        print("真")
    case 1 :
        print("假")
    default :
        print("其它")
    }
    
    • 一个case判断中,可以判断多个值(值之间用 “,” 分隔)


    
    let a = 0
    
    switch a {
    case 0, 1 :
        print("真假")
    default :
        print("其它")
    }
    
    • 如果希望出现case穿透,可以使用关键字fallthrough


    let a = 0
    
    switch a {
    case 0 :
        fallthrough
    case 1 :
        print("假")
    default :
        print("其它")
    }
    
    • switch支持
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇【IOS】自定义可点击的多文本跑马.. 下一篇OC NSSet

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目