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

基本类型

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: Int
currentStudent = 50
currentStudent++

// 浮点数会被推断为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


字符串

//***************字符串
// 字符串自动推断类型为 String
let 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 就打印9
var index_p1 = index_endIndex.predecessor() // 9

// 取到后一个位置, 0后面的下标是1 打印1
var 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 返回是Self
let 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()

c
array

// 更改
array[0] = 9 // 把第0个元素改为 9
array//[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"

dictionary


print(dictionary)




// 根据key取值, 进行赋值操作时, 如果key存在则执.果key不存在执行插入操作

// 键值对的找位置
// indexForKey 这个函数的返回值类型是可选类型, 下面使用的hua需要拆包
var index_dic = dictionary.indexForKey(1)

// 根据indeinde找到位置再删除
dictionary.removeAtIndex(index_dic!)

dictionary







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值