swift篇第一期:简单的数据结构
admin
2023-02-10 10:00:08
0


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


var与let

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

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

 
let name = "KuTian"
var anotherName = "XiaoHua"
anotherName = "KuTianXiaoHua"


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

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

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

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

 
var maxValue = UInt8.max
var minValue = UInt8.min

var doubleValue = 3.14
var anotherValue = doubleValue + Double(minValue)

var stringValue: String = "swh"

var isDouble: Bool = true
if isDouble {
    println("true")
}


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

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

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

然后就是它的一些属性吧

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

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

var string = "My name is "
string += name
println(string)

var emptyString: String = ""

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

for char in "sunWanhua" {
    println(char)
}

var stringCount = "KuTian"

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

var str1 = "sun Wanhua"
var str2 = "Sun Wanhua"

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

var preFixString = "lo"
var productString = "long long"
var nextString = "lang lang"

if productString.hasPrefix(preFixString) {
    println(true)
} else {
    println(false)
}

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


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

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

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

for hero in stoneHero {
    println(hero)
}

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

println(stoneHero.count)

if stoneHero.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()

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

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


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

 
var country = ["cn": "中国", "us": "美国", "jp": "日本"]
var anotherCountry: Dictionary  = ["cn": "中国", "us": "美国", "jp": "日本"]
var emptyDictionary = [:]

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

for shorName in country.keys {
    var result = shorName
}

for longName in country.values {
    var result = longName
}

var shortNameArray = Array(country.keys)
var longNameArray = Array(country.values)

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


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


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



相关内容

热门资讯

多地官宣结婚生娃发钱,最高20... 近日,广东佛山顺德陈村镇大都村通过股东会议表决,将生育结婚奖励政策纳入《佛山市顺德区陈村镇大都村股份...
蒋万安、卢秀燕、谢国梁开记者会... 海峡导报综合报道 民进党当局核准台湾“中联”19批油品即日起重新上架,台“食药署”23日首度公布共计...
西门子洗衣机不工作了什么原因 西门子洗衣机不工作了什么原因1、可能是使用时间太久了,导致洗衣机内部零件出现了问题。2、可能是长时间...
不工作时西门子洗衣机一直响 1、洗衣机的电源电压过低导致西门子洗衣机一直响。2、洗衣机的电容器故障。3、洗衣机的转子卡住导致西门...
博世洗衣机泡沫过多机器不转了 可能是系统部分堵塞。要立即修复单次洗涤,在分配器抽屉上加一顶织物调节剂即可,最好在机器下次用水冲洗时...
14名残疾人用AI做了部爆款短... 执笔 王波日前,宁波众闻道软件科技有限公司负责人龙杰收到了6月份AI短剧收益报告。在公司当月上线的4...
小米洗衣机不运转了怎么修 小米洗衣机不运转,可能是由于多种原因引起的,可能是由于电源问题、电机损坏、控制面板故障等原因。下面是...
杂牌洗衣机不转了怎么办 如果杂牌洗衣机出现不转的故障,可能会造成很多麻烦。无法使用洗衣机会影响我们的日常生活,但是针对这个问...
晒出317万年终奖后,腾讯一员... 近日,有网友晒出疑似腾讯内部发布的通报:WXG某项目组负责人叶某在职期间,因私自泄露公司敏感信息,被...
公安部:国际打击电信网络诈骗联... 今天(24日)上午,国务院新闻办公室举行“开局起步‘十五五’”系列主题新闻发布会,公安部相关负责人介...