Swift基础
1:hello world
import Foundation println("hello world")
就这样,一句代码就可以打印出 hello world 不需要在末尾加";" 这里如果你加了";"同样可以运行的。感觉好像是为了避免麻烦,不再像c语言那样,每句代码末尾都加";",说来也是,从哲学来说,每句代码都加";"约等于不加";" ,反而每次都写,麻烦!
2:代码注释,和c语言的 "//" 与"/* */"一样
3: println()输出
如果要输出变量
var fTmp = 8.9 println("\(fTmp)")//println的格式化是用的"\()"来做的,这个万能的东西,顶替了c语言的printf()时候用%s,%d, %c, %f格式化写参数的办法。其原因我估计还是因为他能推理变量的类型,所以自己做了数据类型格式化吧,
4:常量和变量
在使用前必须要先声明。声明是用 ":"
var strMsg: String strMsg = "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.9 fTmp = 9 println("\(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 = UInt8.min // minValue is equal to 0, and is of type UInt8 let maxValue = UInt8.max // maxValue is equal to 255, and is of type UInt8
Int 根据系统,32系统下表示 Int32 和64位系统下Int64。
UInt 根据系统,32系统下表示 UInt32 和64位系统下UInt64。
let decimalInteger = 17 let binaryInteger = 0b10001 // 17 in binary notation let octalInteger = 0o21 // 17 in octal notation let hexadecimalInteger = 0x11 // 17 in hexadecimal notation
类型转换
var dbVar :Double dbVar = 9.9 let iVar = Int(dbVar) println("\(iVar)") var strInt = "123" var iVar = strInt.toInt() 如果成功,iVar返回Int 否则返回nil
6:Bool 该类型明确的是 "true" 和"false"
if 语句只检测Bool类型
let iFlag= 1 if iFlag { // 编译失败, 1不是逻辑值 }
let iFlag= 1 if 1==iFlag { //可以 }
7:元组数据 用()括起来
let tupError = (500, "httpError") let (errorCode, errorMsg) = tupError println("\(errorCode)")//500 println("\(errorMsg)")// httpError
你也可以定义命名元组
let tupError = (errorCode :500, errorMsg:"httpError") println("\(errorCode)")//500 println("\(errorMsg)")// httpError
8:nil swift的nil不同于其他语言,比如OC表示空指针,而swift表示没有值,至于类型不仅限于指针类型。swift中可以把nil设置给任何类型
var iFlag :Int? iFlag = nil iFlag = 9