SWfit学习1:playground使用练习
? ?
?一、什么是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好于在于能一边写代码一边看到输出的常量变量的值。不需要运行模拟器。 ? 我们来试一下该工具的用法。 打开xcode6开发工具,选择Get started with a playground. 这个功能可以边输入代码,一边看到常量或变量的值。? 保存为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的条件语句包含if和switch,循环语句包含for-in、forwhiledo-while/判断条件不需要括号,但循环判断体(body)必需括号:? //for语句遍历数组
let individualScores = [75,43,255)">103,255)">87,255)">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,2], ? ? ? ?"three":[2,6,8,10], ] var largest =0 for(kind,numbers)indict { ? ?for number in numbers ? ? { ? ? ? ?if(number > largest) ? ? ? ? { ? ? ? ? ? ?largest = number ? ? ? ? } ?? ? ? ? } }
结合if 和letnullable 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 x where 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 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |