Swift基础知识

姓名:谢艾芳  学号:16040410073

转自http://www.jianshu.com/p/02ab8c6c1f9f

〖嵌牛导读〗Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序,Swift语言让应用开发更简单、更快、更稳定,确保最终应用有着更好的质量

〖嵌牛鼻子〗Swift基础知识 Swift的编程技巧和方法

〖嵌牛提问〗如何简单学习Swift基本编程语言?

〖嵌牛正文〗

Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序,Swift语言让应用开发更简单、更快、更稳定,确保最终应用有着更好的质量更多了解Swift可以去 《The Swift Programming Language》中文版,这次分享给大家是Swift基础知识,如果你耐心看完本篇文章,并且可以理解Swift的编程技巧和方法,恭喜你可以顺利的使用Swift开发了,已经掌握了Swift的基本语法,想要真正从事苹果开发,还需要在以后的学习中不断探索和挖掘Swift

在接下来的文章中,直接深入主题,不做过多没必要的文字说明,提高大家阅读和吸收能力

一、常量和变量

常量:使用let来定义常量,定义之后不可以修改

变量:使用var来定义变量,定义之后可以修改

在使用过程中建议先定义常量,如果需要修改再修改为变量

import UIKit

let a : Int = 10

var b : Int = 20

b = 30 变量可以修改

// a = 20是错误的,常量是不能修改的

二、数据类型

1、类型介绍

Swift中的数据类型也有:整型/浮点型/对象类型/结构体类型等,整型分为有符号整型和无符号整型,例如Int、UInt,浮点型分为Float和Double

// 定义一个Int类型

var m : Int = 10

// 定义一个Double类型

let n : Double = 3.14

2、类型推导

Swift是强类型的语言,Swift中任何一个标识符都有明确的类型,如果定义一个标识符时有直接进行赋值,那么标识符后面的类型可以省略,Swift会自动根据后面的赋值来决定前面的标识符的数据类型,同时可以通过option+鼠标左键来查看变量的数据类型

Swift会自动识别a是整数,如果之后再赋值给a一个其他类型(比如浮点型)数值,则会报错

var a = 20

// 正确写法

var b = 3.33

b = 6.66

3、基本运算

Swift中在进行基本运算时必须保证类型一致,否则会出错,相同类型之间才可以进行运算,Swift中没有隐式转换

Swift中数据类型的转化,Int类型转成Double类型是Double(标识符),Double类型转成Int类型是Int(标识符)

let a = 12

let b = 3.14

// 错误写法,形同类型之间才可以进行运算

// let c = a + b

// let c = a * b

// 正确写法,转换类型进行运算

let c = Double(a) + b

let d = a + Int(b)

三、逻辑分支

1、分支的了解

分支即if、switch、三目运算符等判断语句,通过分支语句可以控制程序的执行流程

2、if分支语句

和OC不同,Swift判断句可以不加(),在Swift的判断句中必须有明确的真假,不再有非0即真,必须有明确的Bool值,Bool有两个取值:false、true,没有Yes、NO的使用

例1

确定值存在的判断

let a = 12

// 错误写法,在Swift的判断句中必须有明确的真假,不再有非0即真

//if a {

//    print("a")

//}

// 正确写法

if a > 9 {

    print(a)

}

例2

可选类型的判断,判断如果view有值,则设置背景

let view : UIView? = UIView()

// 错误写法

//if view {

//    view.backgroundColor = UIColor.red

//}

if view != nil {

    view!.backgroundColor = UIColor.red

}

3、三目运算符

Swift 中的 三目 运算符和 OC 的用法是一样的

var a = 12

var b = 24

var result = a > b ? a : b

println(result)

4、guard的使用

guard是很重要的,在以后的开发中会经常用到,来判断该值是否是可选类型,guard在Swift2.0就出现了,与if语句非常类似,它设计的目的是提高程序的可读性

guard语句必须带有else语句,当条件表达式为true时候跳过else语句中的内容,执行语句组内容,条件表达式为false时候执行else语句中的内容,跳转语句一般是return、break、continue和throw

例1

guard用法说明

guard 条件表达式

else {// 条换语句,走这里的都是错误的,判断不符合要求的

    break

}

语句组,正确的执行这里

例2

简单使用guard的用法

func gotToSchool(time:Int) -> Void {

        guard time > 6 else {

            print("去上学")

            return

        }

        print("不去上学")

    }

gotToSchool(time: 5)

5、switch分支

Switch作为选择结构中必不可少的语句也被加入到了Swift中,只要有过编程经验的人对Switch语句都不会感到陌生,苹果对Switch进行了大大的增强,使其拥有其他语言中没有的特性

基本用法和OC用法一致,switch后可以不跟(),case后可以不跟break(默认会有break)

例1

switch对整数的判断

let sex = 0

switch sex {

case 0 :

    print("男")

case 1 :

    print("女")

default :

    print("其他")}

例2

一个case判断中,可以判断多个值,多个值以,隔开

let sex = 0

switch sex {

case 0, 1:

    print("正常人")

default:

    print("其他")

}

例3

希望出现之前的case穿透,则可以使用关键字fallthrough

let sex = 0

switch sex {case 0:

    fallthrough

case 1:

    print("正常人")

default:

    print("其他")

}

Switch支持多种数据类型

① 浮点型的switch判断

let f = 3.14

switch f {

case 3.14:

    print("π")

default:

    print("not π")

}

② 支持字符串类型

let m = 5

let n = 10

var result = 0

let opration = "+"

switch opration {

    case "+":

        result = m + n

    case "-":

        result = m - n

    case "*":

        result = m * n

    case "/":

        result = m / n

default:

    result = 0

}

③ switch支持区间判断

开区间:0..<10 表示:0~9,不包括10

闭区间:0...10 表示:0~10

let score = 88

switch score {

case 0..<60:

    print("不及格")

case 60..<80:

    print("几个")

case 80..<90:

    print("良好")

case 90..<100:

    print("优秀")

default:

    print("满分")

}

你可能感兴趣的:(Swift基础知识)