SWfit学习1:playground使用练习

来源:互联网 发布:免费下载手机淘宝网 编辑:程序博客网 时间:2024/05/16 08:26
   
 一、什么是Swift?

1.Swift 是一种新的编程语言,用于编写 iOS 和 OS X 应用。

2.Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制。

3.Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。

4.Swift 是基于成熟而且倍受喜爱的 Cocoa 和 Cocoa Touch 框架,它的降临将重新定义软件开发。

5.Swift 是编写 iOS 和 OS X 应用的极佳手段,并将伴随着新的特性和功能持续演进。

xcode6.1支持Swift编程 ,他有一个特点就是可以用playground,playground是Xcode的新的调试程序的一个工具,它提供灵活的数据展示方式,弥补了我们之前调试程序的手段的不足之处,它支持QuickLook多样式调试显示,不用添加测试代码、也不用按Run执行程序,就可以直观地查看如,Color类型、String类型、Image类型、View类型、数据等等,可以自已开发动态展示的代码(实现接口),使用XCPCaptureValue函数观察动态过程。

playground好于在于能一边写代码一边看到输出的常量变量的值。不需要运行模拟器。

 NewImage

我们来试一下该工具的用法。

打开xcode6开发工具,选择Get started with a playground.

NewImageNewImage

这个功能可以边输入代码,一边看到常量或变量的值。 

保存为SwiftPlayground.playground,点击create进入编辑器。

 使用playground学习swift语法是最好不过的了。


//输出语句

println("hello,world")


//常量与变量:Swift使用 var声明变量,let声明常量。

var a ="我市变量"

let b ="我是常量"


//Swift 支持类型推导(Type Inference),所以上面的代码不需指定类型,如果需要指定类型

let integer :int_fast32_t =70;

let double:Double =70.0

let string:String ="hello,Swift"


//Swift 不支持隐式类型转换(Implicitly casting),式类型转换(Explicitly casting):

let label ="The width is "

let width =94

let width =label +String(width)



//转换字符串:Swift使用\(item)的形式进行字符串格式化

let myString ="hello"

let MyInt =90

let myString2 ="myInt is \(MyInt)"

let myString3 =myString +String(MyInt)


//Swift 使用[]操作符声明数组(array)和字典(dictionary):

var array = ["one","two","three","five"]

var getTwo =array[1]


var dict = ["oneName":"i am one value","twoName":"i am two value"]

var getTwoValue =dict["twoName"]

dict["threeName"] ="hello"


println("array =\(dict)")


//一般使用初始化器(initializer)语法创建空数组和空字典,如果类型信息已知,则可以使用[]声明空数组,使用[:]声明空字典。

let emptyArray =string[]()

let emptyDict =Dictionary<String,Float>()


Swift的条件语句包含ifswitch,循环语句包含for-inforwhiledo-while,循环/判断条件不需要括号,但循环/判断体(body)必需括号: 



//for语句遍历数组

let individualScores = [75,43,103,87,12]

var teamScore =0

for scoreinindividualScores

{

   if score >50

    {

       teamScore +=3

    }

   else

   {

       teamScore +=1

    }

}

println("teamScore = \(teamScore)")


//for-in 遍历字典

let dict = [

       "first":[2,3,4,5,6],

       "second":[1,2,3,4,3,2],

       "three":[2,4,6,8,10],

]


var largest =0


for(kind,numbers)indict

{

   for numberin numbers

    {

       if(number >largest)

        {

           largest = number

        }

    

    }

}


结合iflet,可以方便的处理可空变量(nullable variable)。对于空值,需要在类型声明后添加?显式标明该类型可空。 


//可空类型:对于空值,需要在类型声明后添加?显式表明该类型可空

var optionalString:string  ?="hello"

optionalString == nil

var optionalNmae:String ?="john"

var greeting ="hello"

iflet name =optionalNmae

{

   greeting ="hello +\(name)"

    println("teamScore =\(teamScore)")

    println("teamScore")


}


//枚举

enum Week

{

   case星期一

   case星期二

   case星期三

   case星期四

   case星期五

   case星期六

   case星期天

}


//switch语句

let vegetable ="星期一"

switchvegetable {

   case"星期二":

   let vegetableComment ="要上班了,伐开心."

    case"星期三","星期四":

   let vegetableComment ="继续上班中,低气压"

   caselet xwhere x.hasSuffix("")

    let vegetableComment ="可恶的星期一"

    default:

    let vegetableComment ="今天星期几"

    

    println("vegetableComment =\(vegetable)")

}


//while do - while循环

var n = 2

while n <100

{

   n = n*2

}


var m =12

do {

 m =m*2

}while m <100


//Swift 支持传统的 for循环,此外也可以通过结合... (生成一个区间) for-in实现同样的逻辑。Swift 除了...还有...:..生成前闭后开的区间,...生成前闭后闭的区间。

var firstForLoop =0

for iin0...3{

    firstForLoop += i

}


var secondForLoop =0

forvar i =0;i<3;++i{

    secondForLoop += i

}



0 0