1、变量 关键字var 常量关键字 let
定义变量 var stringVar=""; var IntegerVar:Integer="";
第一种不指定类型,第二种指定变量类型,格式为【var 变量名:类型=值】
2、数据类型 Stringintfloatdoublechar
注意: Swift中String是值类型,这与 C# JAVA中都不太一样
String属性isEmpty 空值检测
String属性characters 获取每一个字符的值
可选类型【?】
String?Int?float?double?等
如此声明的变量,在赋值时,如果有数据类型不符的值,则值为nil; 这在程序运行时赋值情况下,非常有用
3、数组定义
var strings=["1","2","3","4"]
var strings=["key1":"1","key2":"2","key3":"3","key4":"4"]
第二种方式以键值对的方式定义,也可以定义为空数组
var strings=[] var strings=[:] var strings=Dictionary<String,Int>()
4、创建对象不需要使用new关键字 直接调用构造器即可
5、 类型转换 String(变量常量),Integer(变量常量) Double(变量常量)
6、流控制 if、switch、for、for in、while
for var i=0;i<10;i++{ if varstring!="" { } }
for i in 1..100 { if varstring!="" { } } //..符为区间符 1..100表示1到100之间的数 包含最值
while i<100{}
这里有一个新的概念,区间符,是常见语言里比较少见或者少用到的:
a)闭区间符,三个点组成【...】 ,上面循环里用到的就是 闭区间符,相当于1到100之间的,并且包含1和100的范围。
b)半开区间符,三个点与小于号大于号组成【...<】【>...】此处表示不包含最小值或不包含最大值的,范围区间。
7、函数声明与闭包
func 函数名(参数名:类型,参数名:类型)->返回值类型{}
调用:函数名(参数,参数)
func getA(key:String)->String{return "A"} getA("A");
func getB(key:String)->(String,String,String){return ("A","B","C")} getB("A")
func getC(key:String...)->String{return "ABC..."} get("A","B","C","D","E","F","G","H") //参数含有三个点,表示同类型参数可以有多个,
8、类的声明和使用
类中使用self关键字,代表对象自己,与C语言中的 this作用相同
重载关键字 override
构造函数 init(参数:类型) 可以选择有参或者无参
9、nil表示值缺失,null空指针
10、运算符 ,【+】【-】【*】【/】【%】【=】【++】【--】【+=】【-=】【<<】【>>】【>】【!】【<】【??】等常用运算符
空合运算符 【??】,其相当于,a!=nil?a!:b; 或者 a!==nil?b:a!;
注意:a和b 的数据类型必须一样,a的类型必须为Optional;
11、【元组】定义与用法:
var result=(100,70,"hello world!")
var result : (Int,Int,String)
result=(40,50,"Hello World !")
元组之中还可以嵌套
var composite=(100,30,("",""))
var composite : (Int,Int,(String,String))
composite=(30,20,("Hello","World"))
元组中的元素还可以声明Key,这种方式真令人一见倾心,我见犹怜,爱死个人咧
var dicResult : (ID:Int,Name:String,Age:Int)
dicResult=(ID:1,Name:"小二郎",Age:9)
dicResult=(Name:"小二郎的同桌",Age:19,ID:2) //因为这里定义了Key,所以顺序可以随意变换