Swift介绍

Swift介绍

Swift发布于2014年wwdc大会,是苹果推出的一门编程语言,刚推出的时候主要在os X和iOS平台,今年wwdc大会上,苹果公司宣布今年年底Swift将会开源,开源的部分包括编译器和源代码,这对与开发者来说,是振奋人心的,同时也说明了苹果推懂这门编程语言的决心.

为什么要学习这门语言?我认为有以下几个原因

  1. OC虽然很稳定,但是缺少很多适合现代编程语言的特点.而Swift的一个优点就是modern
  2. Swift更加高效
  3. Swift更加interactive
  4. Swift是typesafe的

初探

打印函数

println("Hello World") // 在Swift2.0中废除
print() // 这个输出函数一直存在,替代了上一个函数,自动换行

注释

注释可以多层嵌套,并且在Swift2.0中,支持markup语法注释

// 单行注释

/* 外层多行注释
    /*
        内层多行注释
    */
 */

语句之后不用分号

在Swift中,吸收了很多其他语言的优点,它在书写上跟加简洁,去掉了;

同一行写多条语句,还需要加上,或者;区别

let number1 = 1, number2 = 2
let switf = "I'm a coder"; print(swift)

类型推断

Swift是类型安全的语言,使用前必须声明数据类型,但是Swift有类型推断机制,不用每次都写上类型
let intValue = 10   // value 系统会自动推断为Int类型
let doubleValue = 5 + 1.44  // Double

数值类型转换

let value: UInt = 1
let value2: UInt16 = 10
let value3 = 1 + UInt(value2)   //类型不匹配, 需要类型转化
print(value3)

类型别名

typealias相当于C语言中的typedef

typealias myString = String
let testString: myString = "Hello World"

数据类型

常量和变量

常量

常量:不可以修改,用let关键字修饰

变量

变量:可以修改,用var关键字修饰

let loginCount = 5
var currrentLoginCount = 0
println("longinCount:\(loginCout)\ncurrentLoginCount:\(currentLoginCount)")
// 在同一行定义一个或多个变量
var x = 5, y = 6, z = 7
let 😀 = 1 // 常量和变量的命名是Unicode字符都可以
声明一个String类型的变量,变量名为nameString 
var nameString: String = "Hello World"
let count: Int = 10

数据类型

Bool类型

Swift中的Bool类型只有truefalse

let areYouOK = true // 推断为Bool类型
if areYouOK {
    println("哈哈")
}

元组 tuples

只取元组中目标元素,其他元素可用_标记忽略

    let httpCode = (404, "not found")
    // 元组数据的访问方式
    let (msgCode, message) = httpCode
    println("this is status code \(msgCode)")
    println("this is status message \(message)")
    // 通过下标访问
    println("this is status code \(httpCode.0)")
    println("this is status message \(httpCode.1)")
    // 只取元组中目标元素,其他元素可用_标记忽略
    let (justNeedStatusCode, _) = httpCode
    println("this is status code \(justNeedStatusCode)")
    // 可以在定义元组的时候给单个元素命名
    let http200Status = (status: 200, message: "ok")
    println("this is status code\(http200Status.status), messge is \(http200Status.message)")

可选类型

    let possableNumber = "123"
    let converNumber = possableNumber.toInt()
    // converNumber被推断为"Int?", 或者Optional Int

    if let number = possableNumber.toInt() {
        println("\(possableNumber) has an integer value of \(number)")
    } else {
        println("\(possableNumber) cound't convered integer")
    }

断言

    // 断言, 条件为true, 执行语句
    let age = -3
    assert(age >= 0, "a person's age cound not less than zero")
    // 何时使用断言, 调试时候用,可引起程序崩溃
 posted on 2015-06-23 22:09  一米深蔚蓝  阅读(327)  评论(0编辑  收藏  举报