您的位置:首页 > 移动开发 > Swift

swift基础

2016-02-15 22:50 429 查看
SWIFT开源了,要逆天!本篇博客和大家一起分享swift中的基础常识,包括如何声明一个常量和变量,如何写注释,类型相关的基础,以及元组,一起来玩吧!

常量和变量

在swift中,所有的值只有两种形式,常量和变量。常量和变量需要先声明再使用。下面先来看看如何声明一个常量和变量。

let pi = 3.1415927
var str = "hello,world!"


我通过
let
来声明一个常量pi并赋值,这个pi的值就不能再修改了,否则编译器会报错,通过
var
来声明一个变量并赋值,由于str是一个变量,所以我可以再次给它赋新的值。

我还可以一次声明一坨的常量或变量,就像这样

var str = "hello,world!" , number=12 , boolen=true


我一次声明了三个不同类型的变量,并且都赋了值。

分号

与其他大部分编程语言不同,Swift 并不强制要求你在每条语句的结尾处使用分号(;),当然,你也可以按照你自己的习惯添加分号。有一种情况下必须要用分号,即你打算在同一行内写多条独立的语句

let str = "hello,world"; print(str)


类型推测和类型安全

我在上面的代码中声明了三个不同的变量,很显然,它们三个的类型是不一样的。swift具有类型推测的能力,会根据你首次给常量或变量赋的值来推断当前常量或变量的类型。例如,变量str会被推测为String类型,number会被推测为Int类型,boolen会被推测为Bool类型。

swift是类型安全的。如果一个变量被推测为某种类型,那么当你尝试给它赋另外一种类型的值时,编译器就会报错,所以,你绝对不可能把一个字符串类型的变量成功地赋值给一个Int类型的变量。

类型标注

有时候,swift的类型推测机制得出的结果并不是我们想要的,或者有些人喜欢在声明变量或常量时显式地指明其类型,可以使用swift的类型标注。

var str : String="hello,world"
var number : Int64 = 12


在第一行代码中,我指明了str为String类型。在第二行代码中,如果我不进行类型标注的话,number变量就会被推测为Int类型,但我希望它是一个长整型,就显式地标注为Int64类型。

类型转换

如果我希望将上面长整形的值同一个整型或一个浮点型数字相加,就需要进行类型转换,swift是不支持隐式的类型转换的

var flt = Float(number) + 2.12


注释

swift的注释语法和主流的语言一样,同样支持单行注释和多行注释。

//这里是单行注释
/*  这里是
多行
注释 */


数字类型和布尔类型

swift支持的数字类型有:

Int 或 Int32,32位整型

Int16,短整型

Int8,更短的整型

Int64,长整型

Float,单精度浮点型

Double,双精度浮点型

Bool,布尔类型,只支持true和false两个值

元组

跟Python一样,swift也支持元组(tuples),这是一个很牛逼的东西!假如你有一个方法,希望返回三个值,怎么办呢?最常用的方法就是,将这三个值定义在一个类中,然后是你的方法返回这个类的一个对象。但是如果你的这个对象就使用一次,岂不是很麻烦。元组可以很好地解决这个问题,主需要返回一个元组就搞定了。

元组把多个值组合成一个复合值。元组内的值可以使任意类型,并不要求是相同类型。

下面是一个元组的定义

let http404Error = (404, "Not Found")
// http404Error 的类型是 (Int, String),值是 (404, "Not Found")


你可以把任意顺序的类型组合成一个元组,这个元组可以包含所有类型。只要你想,你可 以创建一个类型为(Int, Int, Int)或者(String, Bool)或者其他任何你想要的组合的元组。

拿到元组后,可以这样进行拆分

let (statusCode, statusMessage) = http404Error


这样就能够单独使用statusCode和statusMessage这两个常量了。

如果你只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记

let (statusCode, _) = http404Error


这样你可以使用常量statusCode。

此外,你还可以通过下标来访问元组中的单个元素,下标从零开始

let statusCode = http404Error.0
let statusMessage = http404Error.1


你可以在定义元组的时候给单个元素命名,这样的话,可以直接用名字来使用元组,像对象那样

let http404Error = (statusCode : 404, statusMessage : "Not Found")
let statusCode = http404Error.statusCode
let statusMessage = http404Error.statusMessage
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息