美文网首页
Swift语法笔记Part2

Swift语法笔记Part2

作者: 喵鸢 | 来源:发表于2017-03-10 02:53 被阅读12次

Swift-day2主要内容

  • 字符串

    • 字符串的定义
    • 获取字符串的长度
    • 字符串的拼接
    • 字符串的截取
  • 数组的使用

    • 数组的定义
    • 对可变数组的操作
    • 数组的遍历
    • 数组的合并
  • 字典的使用

    • 字典的定义
    • 对可变字典的操作
    • 字典的遍历
  • 元祖的使用

    • 元祖&数组&字典的对比
    • 元祖的定义

    字符串

字符串的介绍

  • OC和Swift中字符串的区别
    • 在OC中字符串类型时NSString,在Swift中字符串类型是String
    • OC中字符串@"",Swift中字符串""
  • 使用 String 的原因
    • String 是一个结构体,性能更高
    • NSString 是一个 OC 对象,性能略差
    • String 支持直接遍历
    • Swift 提供了 StringNSString 之间的无缝转换

字符串的使用

  • 1.定义字符串
    • 1️⃣定义不可变字符串
// 1> 定义不可变字符串 : 使用let修饰
let str : String = "hello swift"
// str = "hello Objective-C" 不可变字符串无法修改
* 2️⃣定义可变字符串
// 2> 定义可变字符串 : 使用var修饰
var strM : String = "hello world"
strM = "hello china"
  • 2.获取字符串的长度
    • 获取字符集合,再获取集合的count属性
let count = str.characters.count
  • 3.字符串的拼接
    • 两个字符串的拼接
let str1 = "Hello"
let str2 = "World"
let str3 = str1 + str2
* 字符串和其他数据类型的拼接
let name = "dxw"
let age = 18
let info = "my name is \(name), age is \(age)"
* 字符串拼接格式化
    * 比如时间:03:04
let min = 3
let second = 4
//02d显示不足两位,用0补齐
let time = String(format: "%02d:%02d", arguments: [min, second])
  • 4.字符串的截取
    • Swift中提供了特殊的截取方式
      • 该方式非常麻烦
      • Index创建较为麻烦
    • 方式一:简单的方式是将String转成NSString来使用(推荐)
    • 在标识符后加:as NSString即可
let urlString = "www.baidu.com"
// Swift中通过 as 关键字可以将String类型转成NSString的类型
let header1 = (urlString as NSString).substring(to: 3)//截到3,从0位开始
let footer1 = (urlString as NSString).substring(from: 10)
let range1 = NSRange(location: 4, length: 5)
let middle1 = (urlString as NSString).substring(with: range1)
* 方式二:使用swift中String截取方式
let urlString = "www.baidu.com"
let headerIndex = urlString.index(urlString.startIndex, offsetBy: 3)
let header2 = urlString.substring(to: headerIndex)
let footerIndex = urlString.index(urlString.endIndex, offsetBy: -3)
let footer2 = urlString.substring(from: footerIndex)
let startIndex = urlString.index(urlString.startIndex, offsetBy: 4)
let endIndex = urlString.index(urlString.startIndex, offsetBy: 9)
let range2 = Range(startIndex..<endIndex)
let middle2 = urlString.substring(with: range2)

数组

数组的介绍

  • 数组(Array)是一串有序的由相同类型元素构成的集合
  • 数组中的集合元素是有序的,可以重复出现
  • Swift中的数组
    • swift数组类型是Array,是一个泛型集合

数组的使用

  • 1.数组的定义(初始化)
    • 数组分成:可变数组和不可变数组
      • 使用let修饰的数组是不可变数组
      • 使用var修饰的数组是可变数组
      • 定义不可变数组
        • 写法1:Array<String>
        • 写法2:[String] 推荐使用
let array : [Any] = ["dxw", 18, 1.88]
let arry : Array<String> = ["dxw""wxf"]
let array = ["dxw""wxf"]//类型推导
* 定义可变数组
var arrayM : [String] = Array()//创建数组,不能省略类型,否则会报错,因为之后不知道数组中存放什么类型
var array = Array<String>()
var array = [String]()
    ```
- 2.对可变数组的基本操作--增删改查
```swift
// 添加数据
array.append("gtx")
// 删除元素
array.removeFirst()
// 修改元素
array[0] = "lxf"
// 取值
array[1]
  • 3.对数组的遍历--掌握
    • 获取数组长度array.count

// 方式一:遍历数组 可以拿到下标值
for i in 0..<array.count {
print(array[i])
}
// 方式二:forin方式 可以拿到元素
for item in array {
print(item)
}
// 方式三:设置遍历的区间
for item in array[0..<2] {
print(item)
}
// 方式四:遍历数组的同时获取下标值
let names = ["dxw", "wxf", "gtx", "lxf"]
for (index, name) in names.enumerate() {
print(index)
print(name)
}

- 4.数组的合并
```swift
// 数组合并
// 注意:只有相同类型的数组才能合并
var array = ["dxw", "wxf","gtx"]
var array1 = ["lxf", "dt"]
var array2 = array + array1;
// 不建议一个数组中存放多种类型的数据
var array3 = [2, 3, "why"]
var array4 = ["yz", 23]
array3 + array4

元组

元组的介绍

  • 元组是Swift中特有的,OC中并没有相关类型
  • 它是什么呢?
    • 它是一种数据结构,在数学中应用广泛
    • 类似于数组或者字典
    • 可以用于定义一组数据
    • 组成元组类型的数据可以称为“元素”

元组的定义

  • 元组的常见写法
// 写法1:使用元组描述一个人的信息
("1001", "张三", 30, 90)
.0
.1
// 写法2:给元素加上元素名称,之后可以通过元素名称访问元素
(id:"1001", name:"张三", english_score:30, chinese_score:90)
.age
.name
.id
//写法3
(name,age,height) = (dxw,18,170)
age
name
  • 注意:从数组中若存放Any类型,取出来的就是Any类型,要使用对应方法还需要强制一下。所以用数组虽然可以保存多种信息,但是特别不好用
  • 注意:若用字典使用Any,取出来的是Any?
  • 所以,数组和字典都不好用,危险。元组取出来的数据更加方便,是数据的真实类型

元组的简单使用

  • 用元组来描述一个HTTP的错误信息
// 元组:HTTP错误
// let array = [404, "Not Found"]
// 写法一:
let error = (404, "Not Found")
print(error.0)
print(error.1)
// 写法二:
let error = (errorCode : 404, errorInfo : "Not Found")
print(error.errorCode)
print(error.errorInfo)
// 写法三:
let (errorCode, errorIno) = (404, "Not Found")
print(errorCode)
print(errorIno)

相关文章

  • Swift语法笔记Part2

    Swift-day2主要内容 字符串字符串的定义获取字符串的长度字符串的拼接字符串的截取 数组的使用数组的定义对可...

  • Swift 2.0 (一)语法详解

    swift 语法 自己学习总结的笔记 : 希望能帮到大家,笔记的详细内容是和objective-c的语法进行比较,...

  • swift学习笔记③

    Swift学习笔记 - 文集 语法篇 枚举 Swift 的枚举类似于 Objective C 和 C 的结构,使用...

  • swift学习笔记②

    Swift学习笔记 - 文集 语法篇 一、函数 函数定义 Swift 定义函数使用关键字 func,functio...

  • 01 Swift最基本的语法变化

    本swift系列笔记更新记录 2017.6.20 -- 基于swift3.1的语法更新代码。 导入框架 定义标识符...

  • swift学习笔记④

    Swift学习笔记 - 文集 语法篇 一、可选类型 Optional Swift 中,常量和变量是不允许赋予 ni...

  • Swift 基本语法04-"switch"和

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法03-...

  • Swift 基本语法06-数组和字典

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法03-...

  • Swift 基本语法03-"if let"和

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法04-...

  • Swift 基本语法05-"String"

    Swift 基本语法01-Swift简介Swift 基本语法02-"let"和"var"Swift 基本语法03-...

网友评论

      本文标题:Swift语法笔记Part2

      本文链接:https://www.haomeiwen.com/subject/yifngttx.html