定义

  • let 定义常量,一经赋值不允许再修改
  • var 定义变量,赋值之后仍然可以修改
//: # 常量
//: 定义常量并且直接设置数值
let x = 20
//: 常量数值一经设置,不能修改,以下代码会报错
// x = 30 //: 使用 `: 类型`,仅仅只定义类型,而没有设置数值
let x1: Int
//: 常量有一次设置数值的机会,以下代码没有问题,因为 x1 还没有被设置数值
x1 = 30
//: 一旦设置了数值之后,则不能再次修改,以下代码会报错,因为 x1 已经被设置了数值
// x1 = 50 //: # 变量
//: 变量设置数值之后,可以继续修改数值
var y = 200
y = 300

自动推导

  • Swift能够根据右边的代码,推导出变量的准确类型
  • 通常在开发时,不需要指定变量的类型
  • 如果要指定变量,可以在变量名后使用:,然后跟上变量的类型

没有隐式转换!!!

  • Swift 对数据类型要求异常严格
  • 任何时候,都不会做隐式转换

如果要对不同类型的数据进行计算,必须要显式的转换

let x2 = 100
let y2 = 10.5 let num1 = Double(x2) + y2
let num2 = x2 + Int(y2)

Optional 可选值

  • Optional 是 Swift 的一大特色,也是 Swift 初学者最容易困惑的问题
  • 定义变量时,如果指定是可选的,表示该变量可以有一个指定类型的值,也可以是 nil
  • 定义变量时,在类型后面添加一个 ?,表示该变量是可选的
  • 变量可选项的默认值是 nil
  • 常量可选项没有默认值,主要用于在构造函数中给常量设置初始数值
//: num 可以是一个整数,也可以是 nil,注意如果为 nil,不能参与计算
let num: Int? = 10
  • 如果 Optional 值是 nil,不允许参与计算
  • 只有解包(unwrap)后才能参与计算
  • 在变量后添加一个 !,可以强行解包

注意:必须要确保解包后的值不是 nil,否则会报错

?? 运算符

  • ?? 运算符可以用于判断 变量/常量 的数值是否是 nil,如果是则使用后面的值替代
  • 在使用 Swift 开发时,?? 能够简化代码的编写
let num: Int? = nil

let r1 = (num ?? 0) + 10
print(r1)

if语句

  • Swift 中没有 C 语言中的非零即真概念
  • 在逻辑判断时必须显示地指明具体的判断条件 true / false
  • if 语句条件的 () 可以省略
  • 但是 {} 不能省略
let num = 200
if num < 10 {
print("比 10 小")
} else if num > 100 {
print("比 100 大")
} else {
print("10 ~ 100 之间的数字")
}

三目运算

  • Swift 中的 三目 运算保持了和 OC 一致的风格
var a = 10
var b = 20
let c = a > b ? a : b
print(c)
 

guard

  • guard 是与 if let 相反的语法,Swift 2.0 推出的
let oName: String? = "张三"
let oNum: Int? = 18 guard let name = oName else {
print("name 为空")
return
} guard let num = oNum else {
print("num 为空")
return
} // 代码执行至此,name & num 都是有值的
print(name)
print(num)
  • 在程序编写时,条件检测之后的代码相对是比较复杂的
  • 使用 guard 的好处
    • 能够判断每一个值
    • 在真正的代码逻辑部分,省略了一层嵌套

switch

  • switch 不再局限于整数
  • switch 可以针对任意数据类型进行判断
  • 不再需要 break
  • 每一个 case后面必须有可以执行的语句
  • 要保证处理所有可能的情况,不然编译器直接报错,不处理的条件可以放在 default 分支中
  • 每一个 case 中定义的变量仅在当前 case 中有效,而 OC 中需要使用 {}
let score = "优"

switch score {
case "优":
let name = "学生"
print(name + "80~100分")
case "良": print("70~80分")
case "中": print("60~70分")
case "差": print("不及格")
default: break
}
 

Swift 入门之简单语法(一)的更多相关文章

  1. Swift 入门之简单语法(六)

    KVC 字典转模型构造函数 /// `重写`构造函数 /// /// - parameter dict: 字典 /// /// - returns: Person 对象 init(dict: [Str ...

  2. Swift 入门之简单语法(四)

    函数 目标 掌握函数的定义 掌握外部参数的用处 掌握无返回类型的三种函数定义方式 代码实现 函数的定义 格式 func 函数名(行参列表) -> 返回值 {代码实现} 调用 let result ...

  3. Swift 入门之简单语法(二)

    可选项判断 由于可选项的内容可能为 nil,而一旦为 nil 则不允许参与计算 因此使用中,经常需要判断可选项的内容是否为 nil 单个可选项判断 let url = NSURL(string: &q ...

  4. Swift 入门之简单语法(五)

    面向对象 目标 构造函数 构造函数的基本概念 构造函数的执行顺序 KVC 在构造函数中的使用及原理 便利构造函数 析构函数 区分 重载 和 重写 懒加载 只读属性(计算型属性) 设置模型数据(didS ...

  5. Swift 入门之简单语法(三)

    集合 数组 数组使用 [] 定义,这一点与 OC 相同 //: [Int] let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 遍历 for num in nu ...

  6. Swift入门教程:基本语法大全

    原文:Swift入门教程:基本语法大全       简介:                                                                        ...

  7. Swift入门教程:基本语法(一)

          简介:                                                                                       什么是S ...

  8. swift入门-day01-基本语法

    主要内容: 1.常量和变量 2.Optional 3.控制流 4.循环 5.字符串 6.集合 变量和常量 定义 let 定义常量,一经赋值不允许再修改 var 定义变量,赋值之后仍然可以修改 自动推导 ...

  9. Vue基础开发入门之简单语法知识梳理(思维导图详解)

    基于个人写的以下关于Vue框架基础学习的三篇随笔,在此基础上,做一个阶段性的知识总结,以此来检验自己对Vue这一段时间学习的成果,内容不多,但很值得一看.(思维导图详解)

随机推荐

  1. JQgrid表格的使用

    html部分: <div class="tab"> <table id="datatable"></table>      ...

  2. 原生态JS实现banner图的常用所有功能

    虽然,用jQuery实现banner图的各种效果十分简单快捷,但是我今天用css+js代码实现了几个banner图的常用功能,效果还不错. 此次,主要想实现以下功能: 1. banner图循环不间断切 ...

  3. Jquery对select下拉框的操作

    一.jQuery获取Select选择的Text和Value:语法解释: $("#select_id").change(function(){//code...});   //为Se ...

  4. CSS border实现各个方向等腰直角三角

    CSS代码: .border_cort, .border_corr, .border_corb, .border_corl { display: inline-block; ; ; border-wi ...

  5. 安装ruby compass失败

    安装compass失败 ERROR: Could not ), here is why: Unable to download data from https://rubygems.org/ - SS ...

  6. 数据库问题(程序连接mysql错误)

    今天服务器遇到了一个很熟悉的问题 输入 #mysql -u root -p ERROR 2002 (HY000):Can't connect to local MySQL server 随即上网找寻答 ...

  7. PHP弱类型语法的实现

    PHP弱类型语法的实现 前言 借鉴了 TIPI, 对 php 源码进行学习 欢迎大家给予意见, 互相沟通学习 弱类型语法实现方式 (弱变量容器 zval) 所有变量用同一结构表示, 既表示变量值, 也 ...

  8. 对于Bootstrap的介绍以及如何使用

    Bootstrap是HTML.CSS 和 JS 框架,用于开发响应式布局.移动设备优先的 WEB 项目. 可以自动适配任何设备,解决了响应式实现的繁琐问题,可以修改其中的各种样式,同样,其内部功能的强 ...

  9. 浅谈PHP+Access数据库的连接 注意要点

    今天公司需要用php连接access 数据库,结果整了半天Access数据库 就是连接不上,查找 很多资料,以下是我的经验, -.- 希望能给需要连接access 数据的人带来帮助..-.- 需要注意 ...

  10. shell 分割字符串存至数组

    shell 分割字符串存至数组 shell编程中,经常需要将由特定分割符分割的字符串分割成数组,多数情况下我们首先会想到使用awk但是实际上用shell自带的分割数组功能会更方便.假如a=”one,t ...