Swift概述

Swift 是一门新的编程语言,用于编写 iOS 和 OS X 应用程序。Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 使用安全的编程模式并添加了很多新特性,这将使编程更简单,扩展性更强,也更有趣。Swift 支持 Cocoa 和 Cocoa Touch 框架。

Swift 对于初学者来说也很简单。Swift是一门既满足工业标准又像脚本语言一样充满表现力和趣味的编程语言。Swift支持代码预览,这个革命性的特性可以允许程序员在不编译和运行应用程序的前提下运行 Swift 代码并实时查看结果,从今以后的系列都将在playground这个"实验室"下面进行代码编写。


编译环境: OS X Yosemite 版本10.10

编译工具: Xcode Version 6.1

// Playground - noun: a place where people can play

import UIKit

var str = "Hello swift variable"  //变量
let str2 = "Hello swift constant" //常量

/*指定数据类型*/
var a : Int=1
var b : Double=1
var c : String="abc"

/*
算术运算符,+,-,*,/,%, ++ , --
关系运算符,>,<,>=,<=,==,!=
布尔逻辑运算符,! ,&& ,||
三元运算符,? :
*/
println(++a)  //前置++为2
println(b++)  //后置++为1.0

if a > 1 && a != 1 {
    println("结果:a大于1")
}else{
    println("结果:a等于1")
}

var d = 2 > 1 ? true : false  //三元运算符结果为true


/*数据类型转换*/
var myInt : Int = 1;
var myDouble : Double = 1.0;

var result =  myDouble + Double(myInt); //不同的类型的变量存储的值域不同,必须进行类型转换

/*字符串的使用*/
var myString : String = ""; //空字符串初始化方式1
var myString2 = String();   //空字符串初始化方式2

if myString.isEmpty{
    println("空值判断");
}

var values : Int = 2;
println("1+1=\(values)");   //字符串插入 1+1=2

myString="hello swift String";
println("myString length :\(countElements(myString))"); //字符串的长度为 myString length :18

/*字符串相等判断*/
myString = "this is a new beginning !";
myString2 = "this is a new beginning !";

if myString == myString2 {
    println("two strings are equal")
}

/*元组类型
元组是将多个值组成一个单值,元组内的值可以为任意类型,各个元素不必是相同的类型*/

var tuple1=("xiaoming",14);                //使用方式一
var tuple2=(name : "xiaoming" , age : 14); //使用方式二

println(tuple1.0)    //结果xiaoming  下标访问
println(tuple2.name) //结果xiaoming  字典类型访问


/*可选类型*/
/* 一般使用的情况 : 将一个值转换它有值但是不确定的情况下 */
/* 注意点 : 访问可选类型需要在其值后面加上 !  */

var possibleNumber = "hello123" ;
var convertNumber : Int? = possibleNumber.toInt();  //转换失败其值为nil
possibleNumber = "123";
var convertNumber2 : Int? = possibleNumber.toInt();  //转换成功其值为123

println("use optional values :\(convertNumber2!)");  //使用可选类型的值

/*nil值的使用*/
/*nil只是用于可选类型的赋值,它表示没有任何值*/
convertNumber2=nil;  //赋值成功
//var newVariable = nil;//赋值失败
/*数组初始化*/
var myArray: [String] = ["jack" , "rose"];

/*数组增删改查*/
myArray.append("tom");
myArray += ["mike"];

myArray.insert("jordan", atIndex: 0);  //插入元素
myArray.removeAtIndex(0);  //删除
myArray[0]="aaron";  //替换

println("Array的长度为:\(myArray.count) and Array下标为0的值:\(myArray[0])"); //使用

/*数组遍历*/
for item in myArray{
    println(item);
}

for(index,value) in enumerate(myArray){
    println("下标是\(index) 值是\(value)")
}

/*字典初始化*/
var myMap : Dictionary<String,Int> = ["a" : 123,"b" : 321];

/*字典增删改查*/
myMap["c"]=234;               //增
myMap.removeValueForKey("b"); //删
myMap["a"]=110;               //改

/*查*/
for (key,value) in myMap{
    println("键:\(key)  值:\(value)");
}

for key in myMap.keys{
    println(key);
}

for value in myMap.values{
    println(value);
}

/*字典转换数组*/
var valuesArray = Array(myMap.values);
var keysArray = Array(myMap.keys);
/*switch使用*/

var option = "+";

switch option{  //option可以为任意类型
case "-","*","%":
    println("option=\(option)");
    fallthrough //贯穿下条case
case "+","/":
    println("option=\(option)");  //最终结果
default:
    println("this is default");
}

var value=3000;

switch value{
case 1...1000:
    println("值为1-1000之内的数");
case 1000...5000:
    println("值为1000-5000之内的数"); //最终结果
default:
    println("this is default");
}

/* for循环打印直角三角形*/
for var i = 0;i < 10; i++ {
    for var j=0;j < i; j++ {
        print("*");
    }
    println(" ");
}




每天坚持学习的最好方法就是把学习当成一种习惯,当花上一段时间把你的学习计划变成你的习惯后,你会发现自己离目标越来越近。