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("满分")

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容