Swift语言视频教程入门与提高(下)视频课程

学习Swift语言技巧并进行实战开发

13721人学习

中级138课时2015/03/31更新

二维码下载学堂APP缓存视频离线看

关东升
    • 畅销套餐
    • 精选套餐
    • 人气套餐
    • 尊享套餐
    • 高薪套餐
  • 课程介绍
  • 课程大纲

适合人群:

iOS初学者,iOS入门,对iOS开发感兴趣

你将会学到:

学习Swift语言技巧并进行实战开发

课程简介:

课程内容:

Swift语言视频教程入门与提高




展开更多

课程大纲-Swift语言视频教程入门与提高(下)视频课程

  • 第1章Swift中的函数(11小时44分钟24节)

  • 1-1

    函数的介绍什么是swift中的函数

    [03:51]
  • 1-2

    1使用函数函数语法:func 函数名(参数列表) -> 返回值类型 {   语句组   return 返回值} 需要了解的问题:1、关于单值和多值返回。2、关于无法返回值情况。函数定义示例代码如下:func rectangleArea(width:Double, height:Double) -> Double {       let area = width * height   return area               }println("320x480的长方形的面积:\(rectangleArea(320, 480))")    

    [07:16]
  • 1-3

    2参数传递swift中函数参数传递

    [01:10]
  • 1-4

    2.1使用外部参数名func rectangleArea(width:Double, height:Double) -> Double {   let area = width * height   return area}println("320x480的长方形的面积:\(rectangleArea(320, 480))")1、有什么问题吗?func rectangleArea(W width:Double, H height:Double) -> Double {   let area = width * height   return area}println("320x480的长方形的面积:\(rectangleArea(W:320, H:480))")width和height局部(内部)参数名。W和H外部参数名。2、把局部参数名作为外部参数名使用func rectangleArea(#width:Double, #height:Double) -> Double {   let area = width * height   return area}println("320x480的长方形的面积:\(rectangleArea(width:320, height:480))")

    [07:50]
  • 1-5

    2.2参数默认值我们在定义函数的时候可以为参数设置一个默认值,当调用函数的时候可以忽略该参数。看下面的一个示例:func makecoffee(type : String = "卡布奇诺") -> String {   return "制作一杯\(type)咖啡。"}let coffee1 = makecoffee(type: "拿铁")     let coffee2 = makecoffee()     输出如下:制作一杯拿铁咖啡。制作一杯卡布奇诺咖啡。当有默认值的参数时候,调用时候需要指定参数名(可以是外部或内部的)我们可以使用下划线作为外部参数名,这样我们调用时候就可以省略参数名了。(只能是有默认值的参数)使用下划线(_)指定外部参数名:func CircleArea(R radius: Double = 30, _ pi: Double = 3.14) -> Double {   let area = radius * radius * pi   return area}println("圆面积:\(CircleArea(R : 50, 3.1415926))")    

    [09:58]
  • 1-6

    2.3可变参数Swift中函数的参数个数可以变化,它可以接受不确定数量的输入类型参数,它们具有相同的类型,有点像是传递一个数组。我们可以通过在参数类型名后面加入(...)的方式来指示这是可变参数。下面看一个示例:func sum(numbers: Double...) -> Double {   var total: Double = 0   for number in numbers {     total += number   }   return total}下面是两次调用sum函数代码:sum(100.0, 20, 30)sum(30, 80)

    [04:31]
  • 1-7

    2.4参数的传递引用参数传递方式有两种:值类型和引用类型。只有类是引用类型,其他的数据类型如整型、浮点型、布尔型、字符串、元组、集合、枚举和结构体全部是值类型。示例:class PassTest {   var ptValue = 0}func changeObjValue(ref : PassTest ){   ref.ptValue = 99}var pt = PassTest()println(pt.ptValue)changeObjValue(pt)println(pt.ptValue)func changeInt(var value : Int){   value = 55}var val = 11println(val)changeInt(val)println(val)如果一定要将一个值类型参数作为引用传递,也是可以实现的,Swift提供的inout关键字就可以实现。下面的一个示例:func changeInt(inout value : Int){   value = 55}var val = 11println(val)changeInt(&val)println(val)

    「仅限付费用户」点击下载“9.函数.pdf”

    [10:43]
  • 1-8

    3.1无返回值函数func 函数名(参数列表) {       语句组}func 函数名(参数列表) ->() {       语句组}func 函数名(参数列表) ->Void {       语句组}示例:func increment(inout value:Double, amount:Double = 1.0) {       value += amount}func increment(inout value:Double, amount:Double = 1.0) ->() {       value += amount}func increment(inout value:Double, amount:Double = 1.0) ->Void {       value += amount}

    [04:44]
  • 1-9

    3.2多返回值函数两种方式实现:参数声明为引用类型传递将返回定义为元组类型。1.引用类型传递示例:func changeInt(inout value1 : Int, inout value2 : Double){   value1 = 55   value2 = 1.23}var val1 = 0var val2 = 0.0changeInt(&val1, &val2)println(val1)println(val2)2. 元组类型示例:func changeInt() -> (value1: Int, value2 : Double) {   return (55, 1.23)}let value = changeInt()println(value.0)println(value.1)

    [09:06]
  • 1-10

    4.函数类型函数可以作为一种类型使用,作为类型与其它数据类型没有区别。

    「仅限付费用户」点击下载“Swift入门与提高-下源码.zip”

    [06:50]
  • 1-11

    4.1作为函数返回类型使用我们可以把函数类型作为另一个函数的返回类型使用。

    [06:46]
  • 1-12

    4.2作为参数类型使用我们可以把函数类型作为另一个函数的参数类型使用

    [08:27]
  • 1-13

    5.函数重载1.函数重载概念:函数重载是指多个函数享有相同的名字但是函数的参数列表或返回值类型不同的一组函数,它们互相构成重载关系。2.与其它语言的不同:Swift的函数类型包括了参数列表类型和返回值类型,例如(Double, Double) -> Double参数类型是由两个Double类型参数列表和Double类型返回值构成的。也就是说,在Swift中函数名相同、参数列表不同或返回值类型不同的函数都可以构成重载。而在C++和Java等语言中,函数重载只与参数列表不同有关,与函数返回值无关。

    [16:28]
  • 1-14

    6.嵌套函数我们也可以把函数定义在另外的函数体中,称作嵌套函数。示例:func calculate(opr :String)-> (Int,Int)-> Int {     //定义+函数   func add(a:Int, b:Int) -> Int {     return a + b   }   //定义-函数   func sub(a:Int, b:Int) -> Int {     return a - b   }     var result : (Int,Int)-> Int     switch (opr) {   case "+" :     result = add   case "-" :     result = sub   default:     result = add   }   return result;}let f1:(Int,Int)-> Int = calculate("+")println("10 + 5 = \(f1(10,5))")let f2:(Int,Int)-> Int = calculate("-")println("10 + 5 = \(f2(10,5))")

    [04:10]
  • 1-15

    7.泛型和泛型函数泛型(generic)可以使我们在程序代码中定义一些可变的部分,在运行的时候指定。使用泛型可以最大限度地重用代码、保护类型的安全以及提高性能。

    [04:15]
  • 1-16

    7.1一个问题的思考自定义日志函数。String类型func log4String(msg : String) {   println(msg)}Int类型func log4Int(msg : Int) {   println(msg)}Double类型func log4Double(msg : Double) {   println(msg)}可以合并为一个函数吗?

    [03:18]
  • 1-17

    7.2泛型函数在函数名log4后面添加<T>,参数的类型也被声明为T,T称为占位符,函数在每次调用时传入实际类型才能决定T所代表的类型。示例如下:func log4<T>(msg : T) {   println(msg)}log4(3)log4("tony")log4(1.02)如果有多个不同类型,可以使用其他大写字母,一般情况下我们习惯于使用U字母,但是你也可以使用其他的字母。多个占位符用逗号“,”分隔。示例如下:func isEquals<T, U>(a: T, b: U) -> Bool {...}占位符不仅仅可以替代参数类型,还可以替代返回值类型。示例代码如下:func isEquals<T>(a: T, b: T) -> T {...}

    [10:19]
  • 1-18

    7.3.泛型约束有些占位符必须遵守某种协议,及T占位符后面添加冒号和协议类型,这种表示方式被称为泛型约束,它能够替换T的类型。例如一个比较函数如下:func isEquals<T>(a: T, b: T) -> Bool {   return (a == b)}上面的函数在编译时会有错误发生,这是因为并不是所有的类型都具有“可比性”,T表示的类型必须遵守Comparable协议实现类型。Comparable协议表示可比较的,修改代码如下:func isEquals<T: Comparable>(a: T, b: T) -> Bool {   return (a == b)}let n1 = 200let n2 = 100println(isEquals(n1, n2))let s1 = "ABC1"let s2 = "ABC1"println(isEquals(s1, s2))

    [07:05]
  • 1-19

    20150309第一期开班典礼20150309第一期iOS就业班课程开班典礼

    [01:07:58]
  • 1-20

    20150313第二期直播答疑20150313iOS在线就业班第二期直播答疑

    [01:47:54]
展开更多
在线
客服
APP
下载

下载Android客户端

下载iphone 客户端

官方
微信

关注官方微信

返回
顶部