Swift简介

2010年的夏天,苹果公司的开发人员Chris Lattne接到了一个特别的任务,为OS X 和iOS平台开发下一代的编程语言,也就是Swift。

苹果公司于2014年WWDC(苹果开发者大会)发布的新开发语言Swift,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。
2015年的WWDC开发者大会上,苹果公司推出了Swift2.0版本,并且Swfit完全开源。

自从Swift发布以来,在http://www.tiobe.com中的排行一直处于上升的状态。


Swift中添加mark的方法

// MARK: -

声明变量和常量

//MARK: - 定义常量变量: 变量类型的隐式转换



// 在Swift中如果定义常量变量不给定相关的类型, 它会隐式转换成你给定的初始值类型


// 定义常量(使用完第一次就不能修改它的值了)
let myGender = "男
//myGender = "女";  不能修改;

// 定义变量
var carName = "BMW";
carName = "Audi";
print(carName);


定义常量变量: 变量类型的隐式转换

在Swift中如果定义常量变量不给定相关的类型, 它会隐式转换成你给定的初始值类型

let name = "Jack" // 如果这样子定义出来一个常量, 它会隐式转换成String类型

let name1 : String = "Rose" // 如果给定类型, 后边赋值的时候需要根据类型进行赋值

let age : Int = 10 // 如果定义常量最好给出初始值, 定义变量给以不给初始值

var age1 : Int? //?表示age1的类型为可选类型, 其值可以为空
print(age1);

// 定义一个字符类型的变量
var char: Character = "A"; // 赋值字符类型的时候仅需一个字母
// 定义一个bool 类型变量 [在swift 中bool类型的变量只有true 或者 false]
var flag : Bool = true;

//MARK: - 字符串string
// (1)创建一个空的字符串
var str_empty = "";
var str1_empty = String();

// (2)创建一个字符串为空字符串
if str_empty.isEmpty {
    print("str_empty is empty");
}

// (3)字符串的拼接
var str_url = "http://"
var str1_url = "www.baidu.com"
let str = str_url + str1_url;
print(str);
print("百度网址:\(str)"); // \(变量名) 输出相关的内容[插入式取值]

// (4)获取字符串的长度
var str1 : String = "abcdef"
print(str1.characters.count)

// (5)字符串的比较
var str2 = "MBBoy"
var str3 = "GBLW"

if str2 != str3 { //==
    print("两个字符串不相等")
}



数组

Swift中数组中的元素类型必须相同 // 要实现不同元素 用OC编码

// 定义一个数组
var nameArray = ["yuanyaun","GBLW","WYW"]
print(nameArray)

var nameArray1 : Array<String> = ["YaQian","XiaoQiang","FatZhou"]

// 定义一个空数组(字符串)
let array = Array<String>()
print(array)

// 访问数组中的元素
print(nameArray[1])

// 向数组中添加元素
var int_array = Array<Int>()

int_array.append(520)
int_array.append(123)
print(int_array)

// 使用运算符添加数组元素
int_array += [100]
int_array += [999]
print(int_array)

// 使用运算符添加多个数组元素
int_array += [800, 999]
print(int_array)

// 插入元素到具体的位置
int_array.insert(521, atIndex: 1)
print(int_array)

// 移除数组中的元素
int_array .removeAtIndex(4)
print(int_array)

// 移除所有元素
int_array.removeAll()
print(int_array)



字典

// 定义一个字典类型的变量
var dict : Dictionary<String,Int> = ["a":18, "GBLW":69, "老王":38]
print(dict)

// 定义空字典
var dict1 : Dictionary<String,Int> = [:]
var dict2 = Dictionary<String,Int>()

// 向字典里添加键值对
dict["d"] = 50
print(dict)

// 修改字典中的内容(根据key去改值)
dict["a"] = 90
print(dict["a"])

// 删除字典中的内容 (根据键去删除)
dict.removeValueForKey("b")
print(dict)



元组

// 定义一个元组

// 方法一: 直接初始化一个元素 (使用swift隐式转换的特点)
var tuples = ("一班",["iOS", "html5", "Android"])

// 方法二: 显示初始化的方式
var tuples1 : (String, Array) = ("8班", ["iOS","html5","Android"])

// 取出元组中的值
// 第一种取值方式:直接把元组赋给另外一个常量, 根据相关标记进行取值
var tuplesNew : (classroom:String, course:Array) = tuples1

var classInfo = tuplesNew.classroom + tuplesNew.course[0] + tuplesNew.course[1] + tuplesNew.course[2]
print(classInfo)

// 第二种方式直接根据下标取值
var classInfoNew = tuples.0 + tuples.1[0] + tuples.1[1] + tuples.1[2]
print(classInfoNew)



循环

// 第一种形式:
for var i = 1; i < 10; i++ {
    print(i)
}

// 第二种形式
for number in 1..<10
{
    print(number)
}

// 第三种形式
for number in 1...10
{
    print(number)
}

// while循环和repeat...while
var i = 8
while i > 0 {
    i--
    print(i)
}

repeat { // 先执行一次循环体, 再进行相关的循环
    print("我")
}while 1 < 0

// 使用循环遍历数组
var anumalArray = ["dog","pig","cat","tiger"]

for anumal in anumalArray
{
    print(anumal)
}

// 使用循环遍历字典
var animalDict = ["dog":"