Swift学习(一)

来源:互联网 发布:手机淘宝好评率 编辑:程序博客网 时间:2024/06/05 02:13

Swift与OC不同:

1,switch支持任意类型的数据以及各种比较操作——不仅仅是整数以及测试相等。

        // switch语句支持任意类型的数据以及比较操作

        let vegetable ="red pepper"

        var vegetableCommon:String? =nil

        switch vegetable{

        case"celery":

            vegetableCommon = "add some pepple"

        case"cucumer","whitecress":

            vegetableCommon = "that would make a good tea"

        caselet xwhere x.hasSuffix("pepper"):

            vegetableCommon = "is it a spicy\(x)?"

        default:

            vegetableCommon = "everything tastes good in soup"

        }

        print("switch输出\(vegetableCommon)")

2,函数可以返回多个值

        //使用一个元组来返回多个值

        func getGasPrices() -> (Double,Double,Double)

        {

            return (3.33,3.43,3.53)

        }

        print(getGasPrices())

3,函数可以嵌套,被嵌套的函数可以访问外侧函数的变量被嵌套的函数可以访问外侧函数的变量

        //函数嵌套内侧函数也可以访问外侧变量

        var xx =8

        func returnFifteen() ->Int {

            var y =10

            func add() {

                xx += 5

                y  += 5

            }

            add()

            return xx

        }

        print("函数嵌套\(returnFifteen())")

函数也可以当做参数传入另一个函数。


4,函数实际上是一种特殊的闭包,你可以使用{}来创建一个匿名闭包。使用in将参数和返回值类型声明与闭包函数体进行分离。


  1. // 参数一:数组  
  2.  // 参数二:一个闭包:带有两个参数,这两个参数类型与数组中的元素类型相同,返回值是Bool  
  3.  var names = ["Swift""Arial""Soga""Donary"]  
  4.    
  5.  // 第一种方式:使用函数  
  6.  func backwards(firstString: String, secondString: String) -> Bool {  
  7.    return firstString > secondString // 升序排序  
  8.  }  
  9.  // 这里第二个参数,传了一个函数  
  10.  // reversed is equal to ["Swift", "Soga", "Donary", "Arial"]  
  11.  var reversed = sort(nams, backwards)  

  1. // 第二种方式:使用闭包方式  
  2.  // 完整闭包写法是在花括号内有参数列表和返回值,用关键字in表明闭包体的开始  
  3.  // (firstString: String, secondString: String) 闭包参数列表  
  4.  // -> Bool 指明闭包返回值类型是Bool  
  5.  // in关键字表明闭包体的开始  
  6.  reversed = sort(names, { (firstString: String, secondString: String) -> Bool in  
  7.     return firstString > secondString  
  8.     })  
 // 这里可以进一步简化写法

reversed = sort(names, { (firstString: String, secondString: String) -> Bool in return firstString > secondString})  

reversed = sort(names, { (firstString, secondString) in return firstString > secondString}) 

reversed = sort(names, { firstString, secondString in firstString > secondString}) 

reversed = sort(names, { $0 > $1 })  

// 最简单的一种写法:使用操作符  

reversed = sort(names, >)  

5,swift注释的不同

与c语言多行注释不同,swift的多行注释可以嵌套在其他的多行注释之中

/* hahahhahhahah

/* hahhaha*/

hahahhahah*/

通过运用嵌套多行注释,你可以快速方便的注释掉一大段代码,即使这段代码之中已经含有了多行注释块

6,swift可以用分号也可以不用分号,如果你要在一行内写多条独立的语句,就要用分号了

let cat = ""; print(cat)


7,swift是一个类型安全的语言,会在编码的事后进行类型检查,保证类型一致

8,在swift中可以对浮点数进行取余运算%  例如:8%2.5 == 0.5 ,swift还提供了c语言没有的表达两数之间的值得区间运算符(a..<b和a...b)

9,多元组 let (x,y) = (1,2)  此时x等于1,y等于2,与c语言和OC不同,swift赋值操作符不返回任何值,所以下面代码是错误的

if x = y{

}

0 0