Swift基础语法(一)

Tags: ios swift objective-c

swift是一个基于objc进化过来的一个新的 OS X/IOS编程语言,而objc是基于c语言进化过来的一门编程语言。所以理论上说objc与c++是同一代产物并且objc与c++是相互独立的两套体系,知道这些以后你就不难理解为什么objc与c++混编要把文件名改成mm而objc与c混编不用修改文件名了

常量与变量

在swift中常量用let定义,变量用var定义

定义格式

 1 //定义并且不赋值 2 //常量 3 let 标识符 : 数据类型? 4 //变量 5 var 标识符 : 数据类型? 6 //定义且赋值 7 //常量 8 let 标识符 : 数据类型=值 9 //变量10 var 标识符 : 数据类型=值

特别说一下swift的标识符是用Unicode字符编码表示的,也就是说你出来不能用数字、敏感字段定义变量,其余的各种文字随便用这与objc和c/c++有很大不同。objc和c/c++的标识符是用ASCⅡ码实现的。知道这个原理之后,我做了个实验。

//函数声明func 测试函数(text:String){
        println("\(text)")
    }//函数调用测试函数("22222")

编译、执行一切OK

基本类型

基本类型这一块swift是兼容objc类型的我只对新增类型做一个介绍

数字类型

swift的数字类型有Integer/Int/Float/Double

Integer类型其实就是objc里的Int8类型

Int/Float/Double 根据运行机器的CPU位数作为变量位数。比如在iPhone5上Int是Int32而在iPhone5s上Int是Int64以此类推

数字表示:

十进制:直接写数字 比如var a =10

二进制:0b加数字 比如 var a=0b1010

八进制:0o加数字 比如 var a=0o12

十六进制:0x加数字 比如 var a= 0x0A

以上这四个变量的十进制表示都是10

类型别名(typealias)

swift里的typealias相当于c语言里的typeof

布尔类型

swift里的bool相当于与oc里的BOOL只有两个值:true ,false

swift里的条件判断返回的都是bool

//在c里我们可以这么用ifint a=1;if(a)
    printf("%d",a);//但我们同样的代码放到swift里var a:Int=1if a{
    println(a)//error}

元祖(Tuples)

swift里的tuples当我第一次看到他时,以为他是数组(我X,数组不是Array么?Tuples是什么鬼)仔细一看不是。它既能当数组又能当强类型字典,官方文档里说主要用于函数返回。其实我认为它就是个多功能的结构体(c++),随时使用定义简单

//定义方式1let a=(15,"age")//输出15println(a.0)//输出ageprintln(a.1)//定义方式二let b=(name:"Tony",age:15)//输出name:Tony age:15println("name:\(a.name) age:\(a.age)")

可选类型(Optionals)

与其说Optionals是基本类型不如说它是每个基本类型的必要属性,如果有值Optionals为true反之Optionals为false。

var a="123"if let b=a.toInt(){
    println(b!)
}

如果if后面直接加一个变量是判断这个变量有没有值。 b后面的感叹号是代表b不为nil toInt()函数是把字符串转换为Int类似 你可以把if去掉再把123改成hello试试看会发生什么

调试专用函数

调试专用函数assert(条件,字符串)如果条件不成立输出字符串

今天就写这么多,如有错误尽请指教。本人感激不尽

   

本文链接:http://www.4byte.cn/learning/119761/swift-ji-chu-yu-fa-yi.html