swift -- swift学习笔记(1)
Swift学习笔记(1) 特点: 基于C和OC语言,使用现有的Cocoa和Cocoa Touch框架,无缝兼容C,OC语言 兼具编译语言的高性能和脚本语言的交互性 支持Playground,它允许程序事实预览,无需频繁创建和运行App 简洁,安全,简易,灵活,高效 开发环境 Mac OS X系统 10.10 或 Mac OS X系统 10.9.3 语法基础: 多行注释:可以嵌套,这点和其他语言不一样,很使用的一个功能 /* //var myVarianle 42 /*-----------------------------*/ */ 分号: 单个语句后面无需加分号,加了也行 多个语句放在一行,需要加分号 数据类型: 常用数据类型: Int:Int8、Int16、Int32、Int64 UInt:UInt8、UInt16、UInt32、UInt64 Double Float BOOL Character String Optional(可选类型) 变量与常量 变量:值可以根据需要不断修改的量称为变量 使用var声明变量 var myVarianle 42 常量:值不能够被二次修改的量称为常量 使用let声明常量 let myConstant = 12 类型推导: 编译器再编译的时候通过提供的初始化值自动推导出 特定的表达式的类型 varmyVariable = 42 编译器自动推断其类型为Int varint :Int = 10 显示申明类型,语法:“变量:类型名” 类型别名: 使用typealias关键字定义类型别名,类似typedef typealias NSInteger = value value :NSInteger Int = 45 var = 12 printIn(value); 布尔类型 var tigerIsAnimal :Bool = true var animallsTiger = false 数组与字典 Array数组 使用[]操作符声明数组 let emptyArray = [] //声明一个空数组,可以插入任意类型的值 let emptyArray2 = String[]() //声明空数组 限定了值的类型为String varshoppingList = [“catfish”,”water”,”tulips”,”blue paint”] printIn(shoppingList.count) printIn(shoppingList[1]) shoppingList[1]= “bottle of water” printIn(shoppingList[1]) Dictionary字典 使用[key:value]操作符声明字典 let emptyDictionary1 =[:] let emptyDictionary =Dictionary<String,Float>() var occupations = [ "Malcolm": "Captain", "Kaylee": "Mechanic", ] println(occupations["Malcolm"]) occupations["Jayne"] ="Public Relations" println("The occupationscount is "+ String(occupations.count)) 元组tuple 元组可以将任意数据类型组装成一个元素 元组再作为函数返回值的时候特别适用,可以为函数返回更多的信息 元组创建 let(x,y) = (1,2) let http200Status = (statusCode:200,description:“OK”) let http404Error = (404,“Not Found”) //由一个Int和一个字符String组成 let (statusCode,statusMessage)= 后台突破Error 元组访问: 直接访问 通过key访问value,类似Dictionary 序号访问方式,序号从0开始 属性访问方式,点语法 可选类型Optional(?的用法) 可选类型:这个值要么存在,并且等于x;要么根本不存在 (变量名/常量名:类型?) var serverResponseCode :Int? = 404 //?的意思事 要么存在,且值为404;要么不存在,为nil let possibleNumber = “123” //letpossibleNumber =“Hello” let convertedNumber :Int?=possibleNumber.toInt() 由于toInt方法可能会失败,因此它会返回一个可选的Int类型,而不同于Int类型。一个可选的Int类型被记为Int?,不是Int。?表示它的值可选的,可能返回的事一个Int,或者返回的值不存在 nil swift的nil不同与OC中的nil。OC中,nil是一个指针指向不存在的对象。Swift中,nil不是指针而是一个特定类型的空值。任何类型的可选变量都可以被设为nil,不光是指针。 Nil不能用于非可选类型。 解包 解包(!的用法) 可选类型在每次访问的时候都会提取并检测它的值是否存在,但有时候根据程序结构就可以推断可选量在首次赋值后必然存在值,这时候,就不需要每次验证值是否存在, 如果确定一个可选量的值一定存在,那么我们使用 进行解包获取它的值,或者使用Optional Binding。
隐式解包的可选类型 可以把隐式解包可选类型 当成自动解包的可选类型。即不是每次适用的时候再变量、常量后面加,而是直接再定义的时候加这些可选量定义为隐式解包的可选量 (implicitly unwrapped optional)。 ?隐式解包的可选量的声明格式为:在希望标为可选的类型名称后面,用感叹号 (!) 代替问号 (?)。 ?隐式解包的可选类型主要用在一个变量/常量在定义瞬间完成之后值一定会存在的情况。 主要用在类的初始化过程中。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |