swift -- swift学习笔记(1)

前端之家收集整理的这篇文章主要介绍了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)。

・隐式解包的可选量的声明格式为:在希望标为可选的类型名称后面,用感叹号 (!) 代替问号 (?)。

・隐式解包的可选类型主要用在一个变量/常量在定义瞬间完成之后值一定会存在的情况。

主要用在类的初始化过程中。

猜你在找的Swift相关文章