首页 > 代码库 > Swift基础 (一)

Swift基础 (一)

1:hello world

import Foundationprintln("hello world")

就这样,一句代码就可以打印出 hello world 不需要在末尾加";" 这里如果你加了";"同样可以运行的。感觉好像是为了避免麻烦,不再像c语言那样,每句代码末尾都加";",说来也是,从哲学来说,每句代码都加";"约等于不加";" ,反而每次都写,麻烦!

2:代码注释,和c语言的 "//" 与"/* */"一样

3: println()输出

如果要输出变量 

var fTmp = 8.9println("\(fTmp)")//println的格式化是用的"\()"来做的,这个万能的东西,顶替了c语言的printf()时候用%s,%d, %c, %f格式化写参数的办法。其原因我估计还是因为他能推理变量的类型,所以自己做了数据类型格式化吧,
 

4:常量和变量

在使用前必须要先声明。声明是用 ":"

var strMsg: StringstrMsg = "I‘m swift"
var strMsg : String?//默认初始化位nil

 

let iMax = 10 //常量 ,需要初始化,不能再次被修改
//iMax = 9 编译失败,可能类似与c语言的const修饰吧。
var iMini = 3//变量,可以不初始化
var iTmp : Int32//变量声明。没初始化iTmp = 44//变量赋值

这里,swift对数据类型是采用的推理类型而来的,他的推理类型也符合c语言中数据类型转换时候的兼容规则

var fTmp = 8.9fTmp = 9println("\(fTmp)")//这里推理fTmp为float类型,那么这里在fTmp=9时候,可以把整数9类型转换成float类型。所以你可以看到输出的是 9.0
但反之则不行

var fTmp = 8

//fTmp = 9.02 编译失败

 

可以一次定义多个变量

var iTmp = 9, iTex = 9.8//这里每个变量的类型推理都是独立的。// iTmp = 8.99 出错//iTmp 被推理为 int。 iTex推理为float

var red, green, blue: Double//表示三个变量都为Double类型

 

变量名和常量名支持unicode,这样,也可以用汉字或者其他字符,但我想我是不会这么使用的。

5:int 数据类型

int数据表示范围可以用 .max方法

let minValue = http://www.mamicode.com/UInt8.min  // minValue is equal to 0, and is of type UInt8let maxValue = http://www.mamicode.com/UInt8.max  // maxValue is equal to 255, and is of type UInt8

Int 根据系统,32系统下表示 Int32 和64位系统下Int64。

UInt 根据系统,32系统下表示 UInt32 和64位系统下UInt64。

let decimalInteger = 17let binaryInteger = 0b10001       // 17 in binary notationlet octalInteger = 0o21           // 17 in octal notationlet hexadecimalInteger = 0x11     // 17 in hexadecimal notation

类型转换

var dbVar :DoubledbVar = 9.9let iVar = Int(dbVar)println("\(iVar)")var strInt = "123"var iVar = strInt.toInt()如果成功,iVar返回Int 否则返回nil  

6:Bool 该类型明确的是 "true" 和"false"

if 语句只检测Bool类型

let iFlag= 1if iFlag {    // 编译失败, 1不是逻辑值}
let iFlag= 1if 1==iFlag {    //可以}

7:元组数据 用()括起来

let tupError = (500, "httpError")let (errorCode, errorMsg) = tupErrorprintln("\(errorCode)")//500println("\(errorMsg)")// httpError

你也可以定义命名元组

let tupError = (errorCode :500, errorMsg:"httpError")println("\(errorCode)")//500println("\(errorMsg)")// httpError

8:nil swift的nil不同于其他语言,比如OC表示空指针,而swift表示没有值,至于类型不仅限于指针类型。swift中可以把nil设置给任何类型

var iFlag :Int?iFlag = niliFlag = 9