首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Swift基础语法(一)

字符串 OC和Swift中的字符串是有区别的: 在OC中,字符串类型是NSString;在Swift中,字符串类型是String。 OC中定义字符串是使用@"";Swift中定义字符串是使用""。...数组 数组是一堆有序的由相同类型的元素构成的集合。 数组中的元素是有序的,可以重复出现。 Swift用Array表示数组,它是一个泛型集合。...在Swift中,nil是一个特殊的类型,它与Int、String一样,都是一种类型。并且Swift语言又是一种强类型语言,因此不能直接nil赋值给其他类型的数据。...//字符串插值可以直接基础类型转换成字符串 var age : Int = 6 var str = "小明今年\(age)岁了" //字符串转成基本类型,必须要保证字符串的内容是可以转换的 var...,重新返回一个数组 let namesShuffles = names.shuffled() 布尔切换 var isOn = true //toggle函数是布尔值转反,该函数没有返回值, isOn.toggle

4.2K30

iOS_Swift高阶函数

Swift 允许当函数的最后一个参数是闭包时,可以以紧跟 { } 的形式,最后一个闭包的内容附加在函数后面。...高阶函数 2.1 map 2.1.1 集合类使用 遍历集合处理后,组成新的集合 // 数组中的字符串转换为小写字母 let cast = ["Vivien", "Marlon", "Kim", "Karl...lowercaseNames = cast.map { $0.lowercased() } print(lowercaseNames) // ["vivien", "marlon", "kim", "karl"] // 获得数组字符串的长度...{ $0.value } print(res2) // [4, 5, 6, 1, 2, 3] ---- 2.5 filter filter 可过滤出符合条件的元素集合 // 过滤字符串长度小于5的 let...关键点:result 用数组 ---- 3.2 用 reduce 一次求出数组中奇数的和、以及偶数乘积 let arr = [1, 3, 2, 4] let res: (Int, Int) = arr.reduce

15430
您找到你想要的搜索结果了吗?
是的
没有找到

Swift基础语法简化版

字符串 OC和Swift中的字符串是有区别的: 在OC中,字符串类型是NSString;在Swift中,字符串类型是String。 OC中定义字符串是使用@"";Swift中定义字符串是使用""。...数组中的元素是有序的,可以重复出现。 Swift用Array表示数组,它是一个泛型集合。...在Swift中,nil是一个特殊的类型,它与Int、String一样,都是一种类型。并且Swift语言又是一种强类型语言,因此不能直接nil赋值给其他类型的数据。...在开发中,碰到nil在所难免,因此Swift推出了可选类型。...//字符串插值可以直接基础类型转换成字符串 var age : Int = 6 var str = "小明今年\(age)岁了" //字符串转成基本类型,必须要保证字符串的内容是可以转换的 var

3.7K50

iOS 面试策略之算法基础1-3节

= [3, 1, 2] // 增加一个元素 nums.append(4) // 对原数组进行升序排序 nums.sort() // 对原数组进行降序排序 nums.sort(by: >) // 数组除了最后一个以外的所有元素赋值给另一个数组...} 字符串和字符 字符串在算法实战中极其常见。在 Swift 中,字符串不同于其他语言(包括 Objective-C),它是值类型而非引用类型,它是多个字符构成的序列(并非数组)。...= nil } // 字符串按字母排序(不考虑大小写) func sortStr(str: String) -> String { return String(str.sorted()) }...总结 在 Swift 中,数组字符串、集合以及字典是最基本的数据结构,但是围绕这些数据结构的问题层出不穷。...例:1->5->3->2->4->2,给定x = 3。则我们要返回 1->2->2 我们只要采用尾插法,遍历链表,小于 x 值的节点接入新的链表即可。

1.6K30

Swift算法俱乐部:Swift栈(Stack)数据结构

如果你尝试弹出一个空的堆栈,那么你会得到一个nilSwift数组有一个方便的方法(popLast)来删除它的最后一个元素 。 Peek 查看堆栈只能查看堆栈的顶层元素。...当POP堆栈中的所有内容时,显示nil。 自定义字符串转换 目前,很难直观地看到堆栈中的元素。...但是Swift有一个名为CustomStringConvertible的内置协议,允许您定义如何以字符串表示对象。...幸运的是,Swift提供了更便捷的方法,首先,Stack的声明更新为以下内容: struct Stack { // ... } 结构声明为泛型,允许堆栈将其用于所有类型。...) // now let stackElements = array.map { "\($0)" }.reversed().joined(separator: "\n") 上面是将它们连接在一起之前数组中的元素转换为

1.7K20

Swift:map(), flatMap() 和 compactMap() 的区别

map() : 转换 map()方法使我们可以编写代码以数组中的所有数字加倍: let numbers = [1, 2, 3, 4, 5] let doubled = numbers.map { $0...因此,这会将我们的整数数组转换为字符串数组: let numbers = [1, 2, 3, 4, 5] let strings = numbers.map { String($0) } 如果我们尝试这些字符串转换回整数...所以通过map()字符串转换为整数返回可选的整数Int?。 如下代码可以展示上面的结论,此代码使用map()字符串数组转换为可选整数数组[Int?]...(如果name不包含字符串nil,map()直接返回nil给greeting。)所以返回值类型是String?...flatMap(): 转换然后展平 现在,你已经看到map()整数数组转换为整数数组(将它们加倍),整数数组转换为字符串数组,以及字符串数组转换为整数数组

3.1K20

Foundation-String

// 简约写法 str.append(contentsOf: ["1","2","3"])// 追加元素为字符串数组 let newString = str.appending("new") // 追加一个字符串生成一个新的字符串...'t'" 字符串进行分割 var str = "?...favemoji = favemoji.replacingOccurrences(of: "My", with: "") print(favemoji) 修改字符串中的值 需求: 找出字符串中的数字放到一个新的数组中...}) } print(str1) print(nums) 运行结果: KuZouTiYa [1, 9, 9, 1, 0, 1, 2, 8] 提示: 1.首先map,数字从当前字符串中移除,...如果是数字类型则返回,不是数字的字符返回nil 2.这时候,我们的数组里面的值是可选类型,我们通过filter过滤掉nil 得到没有nil的可选值数组,此时再map一下,将可选值值编程非可选值 截取字符串的写法

92810

窥探Swift之新添数据类型元组与可选值

一、Swift中的元组(Tuple)   元组类似于C语言中的结构体(Struct),用来存储一组相关的值,并且允许这些相关值的类型不同。元组一般在数组返回多个值的时候使用。     1....2.取出元组中的值,方式一:直接赋值给相应的常量(或者变量),下面这行代码就是直接把元组赋值给常量,在Swift字符串之间的连接可以使用+号运算符。...4.我们还可以显式的指定元组的每个元素的类型,下面就为元组student1每个元素指定了数据类型,前两个是字符串类型,后两个是整型。...4.来看一下可选类型的使用场景以及使用小实例。     (1)把字符串转换成整数时我们要用可选类型的变量(或者常量)来接受,因为我们不确定是否转换成功了,然后经过非空判断后,再使用感叹号(!)...下面把一个数字字符串转换成整数,然后使用一个变量去接收,然后去判断这个变量是否为空,不为空就强制打开进行使用,下图转换后不为nil就会被强制打开然后使用。 ?

85950

万字长文|Swift语法全面解析|附示例

Swift 通过采用现代编程模式来避免大量常见编程错误: 变量始终在使用前初始化。 检查数组索引超出范围的错误。 检查整数是否溢出。 可选值确保明确处理 nil 值。 内存被自动管理。...可以在已有字符串中插入常量、变量、字面量和表达式从而形成更长的字符串Swift 提供了三种方式来比较文本值:字符串字符相等、前缀相等和后缀相等。...集合类型 Swift 语言提供数组(Array)、集合(Set)和字典(Dictionary)三种基本的集合类型用来存储集合数据。数组是有序数据的集。集合是无序无重复数据的集。...表示与抛出错误,处理错误,指定清理操作 在 Swift 中,错误用遵循 Error 协议的类型的值来表示。 Swift 中有 4 种处理错误的方式。...john = Person(name: "John Appleseed") unit4A = Apartment(unit: "4A") john = nil unit4A = nil // 弱引用

3.2K21

Swift 5.1 中引入的部分有用的新特性

为了能够确定是应该插入还是删除模型,我们现在可以简单地调用新的差异API来计算旧数组与新数组之间的差异-然后迭代该差异中的更改以执行我们的数据库操作: class DatabaseController<...为 nil的情况,其他情况已经在上方处理 if association == nil { database.delete(model)...6、协议抛出错误功能实现为非抛出 在Swift中,可以使用非抛出函数满足抛出错误函数协议的要求,这在某些情况下非常有用。...,我们可以使Path符合ExpressibleByStringLiteral,这使我们能够直接字符串文字传递给任何接受Path的API: extension Path: ExpressibleByStringLiteral...,则上述方法无法正常工作,例如: try loadFile(at: "/users/\(username)/file.txt") 现在,swift5.1引入了新协议ExpressibleByStringInterpolation

1.3K20

46 道 Swift 常见面试题解

2、数组都实现了哪些协议 3、如何自定义模式匹配 4、autoclosure 的作用 5、编译选项 whole module optmization 优化了什么 6、下面代码中 mutating 的作用是什么...a : b } myMin(1, 2) ▐ 2.5 map、filter、reduce 的作用 map 用于映射, 可以一个列表转换为另一个列表 [1, 2, 3].map{"\($0)"}// 数字数组转换为字符串数组...) // [1, 2, 3, 4, 5, 6] 其实这个实现, 相当于是在使用 map 之后, 再将各个数组拼起来一样的 [[1], [2, 3], [4, 5, 6]].map(someFunc).reduce...([Int]()) {$0 + $1} // [1, 2, 3, 4, 5, 6] ▐ 2.7 什么是 copy on write 写时复制, 指的是 swift 中的值类型, 并不会在一开始赋值的时候就去复制..., 如果要监控一个属性, 则必须要标记为 dynamic ▐ 2.24 什么时候使用 @objc @objc 用途是为了在 Objective-C 和 Swift 混编的时候, 能够正常调用 Swift

3.7K33
领券