iOS讲解迷惑--Swift基础(数据类型, 字符串, 数组, 字典 )

来源:互联网 发布:广东省网络医院 接诊点 编辑:程序博客网 时间:2024/06/06 01:26

基本类型

var str = "Hello, playground"// 变量声明规则// var (let) 变量名 = 值var str1 = "abc"str1 = "bcd"// 类型推断(根据给出的值对变量进行类型的推断和确定)//str1 = 2 // 会报错//*****************基本数据类型var a = 10 // 被推断为整型, 可以省略分号(也可以写分号)var b = 20// 关于整型的类型推断, 在32位系统的环境下会自动推断为Int32, 在64位环境Int64//**********************let maxNumber = 57//maxNumber++ // 报错, let 类型是不可变的变量// 指定变量类型// 语法: (var 变量: 变量类型 = 值)// 如果给定类型, 在使用变量前进行赋值var currentStudent: IntcurrentStudent = 50currentStudent++// 浮点数会被推断为Double类型(双精度)var score = 90.2// 需要使用Float类型var score1: Float = 90.5// var sumScore = score + score1 // 报错, 原因, swift中不支持隐式类型转换, 充分体现swift的安全性, 消除潜在威胁//  var必须转成同类型才可操作// 类型转换 语法: 类型(变量)var sumScore = score + Double(score1)// 运算符 和变量 必须加空格var sumScore2 = Float(score) + score1


字符串

//***************字符串// 字符串自动推断类型为 Stringlet name = "小雷雷"// 字符型 (用Character 转成字符型)// char 变量名let char:Character = "a"// + 号运算符let loClass = "BJS150727"// 拼接字符串, 直接用加号let teaInfo = loClass + name// + 又名重载运算符, 源于C++ , 可以直接用于字符串的拼接// 字符串截取// 1. 截取// String 类型与NSString类型不同var strTest = "0123456789"// String.Index // 取出字符串开始的下标(Int类型)var index = strTest.startIndex // 是Int类型,  0 // 取出字符串结束的下标(Int类型)var index_endIndex = strTest.endIndex // 10// predecessor() 代表前一个位置, 10前面的下标是9 就打印9var index_p1 = index_endIndex.predecessor() // 9// 取到后一个位置, 0后面的下标是1 打印1var index_s1 = index.successor() // 1// 然后再截取, 截取到下标到1得位置(不包括1)var subString = strTest.substringToIndex(index_s1) // "0"var sunString2 = strTest.substringFromIndex(index_s1) // "123456789"// 2. 截取// 将String转成NSString类型// 使用as关键字指定目标类型var nsstring1 = (strTest as NSString).substringFromIndex(5)//"56789"var nsstring2 = (strTest as NSString).substringToIndex(4)//"0123"// 3. 截取var strTest2 = "01234567"// 取第几个位置 4// advancedBy 返回是Selflet index_str2 = strTest2.startIndex.advancedBy(4)// 截取  先搞 第几个var subStrTest2 = strTest2.substringToIndex(index_str2)//"0123"// 在swift中, 变量几乎支持所有的Unicode编码的字符, 除了数学中的符号, 下划线,特殊字符var cat = "


数组&字典

//****************数组// 数组最好存储同一类型的元素var array = [1, 2, 3] // 自动推断为[Int]类型的数组,   [1, 2, 3]var array2 = ["1", "2", "3"] // [String] ,  ["1", "2", "3"]// 数组指定类型 (两种方式)//第1种方式. 语法:[Int]var array4:[Int] = [1, 2, 3]//第2种方式. 语法 Array<Int>var array5: Array<String> = ["1", "2"]var array6:Array = [1, "2"] // 不建议使用这个方法(有点麻烦)// 增加元素array.append(4) // [1, 2, 3, 4]// 插入 (在下标为2的位置插入元素 5)array.insert(5, atIndex: 2)// 获取最后一个元素array.last// 获取第一个元素array.first// 删除下标是第一个的元素let c = array.removeAtIndex(1)// 删除全部元素//array.removeAll()carray// 更改array[0] = 9 // 把第0个元素改为 9array//[9, 5, 3, 4]// 查询let d = array[1]d// 数组中重载运算符的使用 + array = array + array4 // 把一个数组放到另一个数组里array // [9, 5, 3, 4, 1, 2, 3]array4// 区域运算符// ...       1...2 从1到2的闭区间 (包括1和2)// ..<       1..<2  从1到2的开区间(不包括2)array   // [9, 5, 3, 4, 1, 2, 3]array[0...2] // [9, 5, 3]array[0..<2] // [9, 5]// 区间替换, 数组中元素个数没有限制array[0...2] = [11, 22 ,33]array//*********************字典// 键值对数组, 字典的使用规则, 键与键类型相同, 值与值类型相同, 键值类型可以不同var dictionary = [1:"1", 2:"2", 3:"3"]// 声明字典类型(指定类型)// 第1中方式. [key:value]var dictionary1 : [Int: String] = [1:"1"]// 第2种方式. Dictionary<key, value>var dictionary2: Dictionary<Int, String> = [1:"1"]// 查询// 根据key查询, 如果有就替换, 没有就插入let eeeee = dictionary[1]// 把key 为 3的 值换成 "a"dictionary[3] = "a"// 没有4 就插入这个键值对dictionary[4] = "ww"dictionaryprint(dictionary)// 根据key取值, 进行赋值操作时, 如果key存在则执.果key不存在执行插入操作// 键值对的找位置// indexForKey 这个函数的返回值类型是可选类型, 下面使用的hua需要拆包var index_dic = dictionary.indexForKey(1)// 根据indeinde找到位置再删除dictionary.removeAtIndex(index_dic!)dictionary







0 0
原创粉丝点击