swift 2.0 语法 可选类型】的更多相关文章

import UIKit /*: 可选类型(可以有值, 也可以没有值) * 在OC中我们可以给一个对象类型变量赋值为nil或者一个对象, 而在Swift中如果想给一个变量赋值为nil那么必须明确指定为可选类型才可以, 也就是说普通变量是不能赋值为nil的 格式:  数据类型? *  以后但凡看到init后面跟上一个?, 就代表初始化方法返回的值是可选的 注意: * 可选类型是不能直接使用的, 如果向使用一个可选类型的值, 必须对可选类型进行解包 ! * 解包的含义: 告诉系统可选类型的变量, 一…
//: Playground - noun: a place where people can play import UIKit /*: 函数 * 格式 func 函数名称(形参名称1: 形参类型, ...) -> 返回值类型 { // 逻辑代码 } * 没有参数没有返回值 * 没有参数有返回值 * 有参数没有返回值 * 有参数有返回值 */ // 没有参数没有返回值 // 如果函数的返回值是Void, 那么可以简写为() // 如果函数的返回值是(), 那么可以直接不写 func say()…
//: Playground - noun: a place where people can play import UIKit /*: for循环 * 基本用法和OC一致 * 条件表达式必须是bool类型的值 * 条件表达式的()可以省略 * 在OC中如果{}中只有一条语句, 那么{}可以省略, 而Swift不可以 */ for var i = 0; i < 10; i++ { print(i) } /*: 区间 半闭区间: 0..<10  包含头不包含尾 闭区间:   0...10  包…
import UIKit // 注意: Swift中可以不写;号, 但是有一定的前提条件, 一行只有一句代码 //      如果一行有多句代码, 那么;还是必须写 // 注意: Swift变态的地方, 有时候运算符的左右如果没有写空格就会报错 let num = 10 /*: if * Swift中的if和OC中的if用法大致一致, 知识在细节上有一些细微的不同 不同点 * 1.OC中非0即真, 而Swift中没有这个概念, Swift中if的条件表达式必须是一个bool值 * Swift中提…
import UIKit /*: 常量变量 * 常量: let * 变量: var 完整格式: * 修饰符(let/var) 常量/变量名称: 数据类型 */ let number: Int var value: Double number = 10 value = 20 let n1: Int = 10 // 常量一旦初始化就不能再修改里面的值 //n1 = 20 /*: 类型推导 * 如果在定义一个常量或者变量的同时, 给这个常量或者变量进行了初始化, 那么数据类型可以不写 * 如果在定义的…
//: Playground - noun: a place where people can play import UIKit /*: 字符串 * OC中的字符串是一个对象, Swift中的字符串是一个结构体 * OC中的字符串以\0结尾, Swift中的字符串不是以\0结尾 * Swift中的字符串比OC中的字符的性能要好 * Swift中的字符串支持遍历 */ let str = "abc\0def" print(str) // 遍历字符串 for c in str.chara…
import UIKit /*: 元祖 * 可以将多个值保存在一起 * 格式: (数值1, 数值2, 数值3) * 特点: 元祖可以保存不同数据类型的值 * 用途: 在C/OC中如果一个函数想返回多个值需要借助指针, 而在Swift中有了元祖之后就不用通过指针了 * 元祖和数组一样, 可以通过索引访问元祖中保存的值 * 除此之外, 还可以给每一个值起一个名字, 将来通过这个名字访问对应的值 * 除此之外, 还可以在定义的同时就取出元祖中的值 */ let numbers = (10, 11, 1…
import UIKit /*: 数组 * 格式 var arr:[Int] = [数值1, 数值2, 数值3] * 不可变数组  let  == NSArray * 可变数组    var */ let arr = [10, 11, 12] // 开发中用这种 let arr2: [Int] = [10, 11, 12] let arr3: Array<Int> = [10, 11, 12] // 注意: 如果向先定义在初始化, 那么就必须在定义的时候指定数据类型 var arr4:[Int…
//: Playground - noun: a place where people can play import UIKit /*: 字典 * 和OC的区别 * 1. {} 替换为 [] * 2. 去掉所有@ * 可变字典   var * 不可变字典 let */ var dict = ["name": "lnj", "age": 30] let dict2: [String : NSObject] = ["name":…
我们在swift的开发中会经常遇见?和! ,理解这两个符号深层次的内容对我们的开发是相当有利的: 目前网上对swift3.0的教程还相当的少,如果去搜索会发现早期的说法,在定义变量的时候,swift是不会给变量赋值初始值的,所以当你声明一个字符串变量的时候,var string:String   就会被系统报错,但是目前的swift版本却不报错了. 但是你要给一个字符串赋值未nil的时候,var string:String = nil 就一定是错误的   因为nil并不是一个字符串类型,而实际上…