好久没来了,趁着新语言Swift发布,继续钻研中!
Create Class创建类 (重载效果)
//Create Class 创建类classMyClass {//PRoperties 成员变量init() {//Constructor 构造函数}//Method 成员方法func doIt() {
println("doIt")
}
func doIt()->Int {return0}
func doIt(a:Int)->Int {returna
}
func doIt(a:Int, b:Int)->Int {returna +b
}
func doIt()->String {return""}
func doIt(a:String)->String {returna
}
func doIt(a:String, b:String)->String {returna +b
}
}//Create / Using an Instance 创建 / 使用 一个实例var a =MyClass()
a.doIt("Wang", b:"Zhipeng")
Enums枚举
//Enums 枚举enumComcSoftType: Int {caseDevelopmentEngineer =1caseTestEngineer =2}
var myType= ComcSoftType.DevelopmentEngineer
Declaring Variables变量的声明 (可选变量)
//Declaring Variables 变量的声明var mutableDouble:Double =1.0mutableDouble=2.0let constantDouble:Double=1.0//constantDouble = 2.0 Error 错误var autoDouble=1.0//Optional Value 可选变量 (新机制)var optionDouble:Double?//此刻 optionDouble 根本没有分配内存,对其取地址: &optionDouble 为NULLoptionDouble =1.0//这时候开始 optionDouble 才会开始分配内存iflet defineDouble =optionDouble {
println("已经分配内存")
}else{
println("没有分配内存")
}
Control Flow控制流
//Control Flow 控制流var condition =trueifcondition {
println("正确")
}else{
println("错误")
}
var val="Four"switchval {case"One":"One"case"Two","Three":"Two, Three"default:"default"}//omits upper value, use ... to include 省略了上限值,使用 ... 包括foriin0..3{
println("i = \(i)")
}forvar j =0; j <3; ++j {
println("j = \(j)")
}//Whilevar n =2whilen <100{
n= n *2}
println(n)
var m=2do{
m= m *2}whilem <100println(m)
String Quick Examples字符串的例子
//String Quick Examples 字符串的例子var firstName ="Zhipeng"var lastName="Wang"var helloString="Hello, \(lastName) \(firstName)"var tipString="2499"var tipInt=tipString.toInt()
extension Double {
init (string:String) {
self= Double(string.bridgeToObjectiveC().doubleValue)
}
}
tipString="24.99"var tipDouble= Double(string:tipString)
Array Quick Examples数组的例子
//Array Quick Examples 数组的例子var person1 ="One"var person2="Two"var array:String[]=[person1, person2]
array+="Three"forpersoninarray {
println("person: \(person)")
}
var personTwo= array[1]
println("personTwo: \(personTwo)")
Dictionary Quick Examples字典的例子 (泛型效果)
//Dictionary Quick Examples 字典的例子var dic:Dictionary<String, String> = ["One":"1","Two":"2","Three":"3"]
dic["Three"] ="4"//Update Threedic["One"] = nil//Delete Onefor(key, value)indic {
println("key: \(key), value: \(value)")
}
Function函数
//Function 函数func getPirces() ->(Double, Double, Double) {return(1.1,1.2,1.3)//tuple 元组}//取出元组var (one, two, three) =getPirces()
println("One = \(one), Two = \(two), Three = \(three)")
func getSum(numbers:Int...)->Int {
var sum=0fornumberinnumbers {
sum+=number
}returnsum
}
getSum()
getSum(1,3,5,7,9)
函数嵌套
//函数嵌套func nestedFunction() ->Int {
var x=0//func add() {
x+=1}//add()returnx
}
函数传递
//函数传递func makeIncrementer() -> (Int ->Int) {
func addOne(number:Int)->Int {returnnumber +1}returnaddOne
}
var increment=makeIncrementer()
increment(1)
func makeIncrementer2()-> ((String, String) ->String) {
func and(a:String, b:String)->String {returna +b
}returnand
}
var increment2=makeIncrementer2()
increment2("Wang","zhieng")
func lessThanOne(number:Int)->Bool {returnnumber <1}
func makeIncrementer3(list:Int[], condition:Int-> Bool) ->Bool {fornumberinlist {ifcondition(number) {returntrue}
}returnfalse}
makeIncrementer3([1,2,3,4,5], lessThanOne)
Extends 继承 (多态效果)
//Extends 继承 (多态效果)println("======================= Extends 继承")classPeople {//Eat 吃func eat() {
println("吃")
}//Sleep 睡func sleep() {
println("睡")
}//Work 工作func work() {
println("工作")
}//Said 说func said() {
println("我是人")
}
}classChinese:People {//Said 说overridefunc said() {
println("我是中国人")
}
}classAmericans:People {//Said 说overridefunc said() {
println("我是美国人")
}
}classAlien {//Eat 吃func unknown() {
println("外星人")
}
}//不支持多继承//class futureGenerations:Chinese, Americans {//Multiple inheritance from classes 'Chinese' and 'Americans'////Said 说//override func said() {//println("我是中国人和美国人的后代")//}//}//多态 必要条件:1.继承 2.重写 3.父类引用指向子类对象var people =People()
people.said()
people=Chinese()
people.said()
people=Americans()
people.said()//people = Alien() Error 'Alien' is not convertible to 'People'//people.said()var chinese=Chinese()
chinese.said()
var americans=Americans()
americans.said()