swift篇第一期:简单的数据结构


首先我们可以去使用Playground来编码,并且会实时的显示对应的编码信息,这样我们就不用每次都去运行程序来显示输出的东西了哦,也方便了我们对某些语句的验证,这个是比较赞的


var与let

前者为可变修饰符,后者为不可变

从字面意思我们就可以很好的区分了

letname="KuTian"
varanotherName="XiaoHua"
anotherName="KuTianXiaoHua"


常用的类型呢,跟其他语言基本相同啦,主要有几种:

1.int类型 2.Float,Double类型 3.String类型 4.Boolean类型

当我们去声明一个变量的时候,可以选择初始化它的类型哦

但是在这里,我们的Bool类型只有true和false哦,至于0和1,我们还是要区分的哦

varmaxValue=UInt8.max
varminValue=UInt8.min

vardoubleValue=3.14
varanotherValue=doubleValue+Double(minValue)

varstringValue:String="swh"

varisDouble:Bool=true
ifisDouble{
println("true")
}


接下来就是简单介绍一下字符串的一些语法

这里有意思的就是字符串可以去加上另一个字符串得到一个新的字符串

也就是用“+”来拼接字符串,所以“+=”也是好用的呢

然后就是它的一些属性

比如:判断是否为空,遍历字符串中的字符,统计字符串中的字符数量,判断字符串是否相等,判断是否以**为前后缀 等等咯

varname="sunwanhua"
varhello="Hello"
vargreet=hello+name
println("Hello\(name)!")
//我们在输出的时候,只有变量的话就直接写,如果在""里面就要加上\(变量名)

varstring="Mynameis"
string+=name
println(string)

varemptyString:String=""

//直接调用字符串的方法,用"."语法来调用
ifemptyString.isEmpty{
println(true)
}else{
println(false)
}

forcharin"sunWanhua"{
println(char)
}

varstringCount="KuTian"

//用count(变量名)来获取当前变量的长度
varstrCount="\(count(stringCount))"
println(strCount)

varstr1="sunWanhua"
varstr2="SunWanhua"

//这里我们就不需要用isEqualTo:等语法了哦,直接"=="
ifstr1==str2{
println("相等字符串")
}else{
println("不相等字符串")
}

varpreFixString="lo"
varproductString="longlong"
varnextString="langlang"

ifproductString.hasPrefix(preFixString){
println(true)
}else{
println(false)
}

ifnextString.hasSuffix("ng"){
println(true)
}else{
println(false)
}


接下来就是数组了哦,也是蛮简单的

varstoneHero:[String]=["血法师","萨满","战士","德鲁伊","圣骑士","牧师","术士","盗贼","猎人"]

//直接修改数组内元素的值
stoneHero[0]="法师"

forheroinstoneHero{
println(hero)
}

//这里涉及到新的数据结构:元祖(index,value),我们想象一下(404,"error")
//这里要是用元祖遍历,需要把对应关系搞好,那么数组也需要类似元祖的形式enumerate()
for(index,value)inenumerate(stoneHero){
println("\(value)所在位置为:\(index+1)")
}

println(stoneHero.count)

ifstoneHero.isEmpty{
println(true)
}else{
println(false)
}

stoneHero.append("旅店老板")
stoneHero+=["旅店老板娘"]

//[4...6]应该就是闭区间的意思吧,就是4,5,6
//而还有种写法就是半开区间[4..<6],就是4,5
stoneHero[4...6]=["why","do"]
stoneHero.insert("you",atIndex:6)
stoneHero.removeAtIndex(4)
stoneHero.removeLast()

//下面的意思就是创建一个数组,且类型、值相同的几个元素
varthreeDoubles=[Double](count:3,repeatedValue:1.0)
varanotherThreeDoubles=Array(count:3,repeatedValue:2.5)

//相同类型的数组还可以进行互相加减哦
varsixDoubles=threeDoubles+anotherThreeDoubles
forvalueinsixDoubles{
println(value)
}


然后呢,就是字典啦,快来看看吧

varcountry=["cn":"中国","us":"美国","jp":"日本"]
varanotherCountry:Dictionary<String,String>=["cn":"中国","jp":"日本"]
varemptyDictionary=[:]

//所以说,有了元祖以后,就很好的可以控制字典啦,哈哈,看样子元祖跟字典是配套玩的咯
for(shortName,longName)incountry{
varresult=shortName+":"+longName
}

forshorNameincountry.keys{
varresult=shorName
}

forlongNameincountry.values{
varresult=longName
}

varshortNameArray=Array(country.keys)
varlongNameArray=Array(country.values)

country["cn"]
country["jp"]
country.count
country.updateValue("瓷器",forKey:"cn")
country["cn"]="xiaowang"
country.removeValueForKey("cn")
country["jp"]=nil


其实数据类型还好啦,跟O-C里面基本大同小异了,可能写法更简单化了哦,应该也不用考虑内存的使用了吧,这也让更多的人好入手了啊,看样子比较不错


好啦,就先写这么多吧,回头学习的时候抽时间再来写哦

相关文章

Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了...
快,快,快!动动您的小手,分享给更多朋友! 苹果去年推出了全新的编程语言Swift,试图让iOS开发更简单...
开发者(KaiFaX) 面向开发者、程序员的专业平台! 和今年年初承诺的一样,苹果贴出了Swift语言的源码,...
本文由@Chun发表于Chun Tips :http://chun.tips/blog/2014/12/11/shi-yong-swift-gou-jian-zi-ding-yi...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...