温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-08-11 13:42:29 来源:网络 阅读:381 作者:孙婉华_528 栏目:移动开发


首先我们可以去使用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 <String, String> = ["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里面基本大同小异了,可能写法更简单化了哦,应该也不用考虑内存的使用了吧,这也让更多的人好入手了啊,看样子比较不错


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



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI