Swift学习(一)
来源:互联网 发布:手机淘宝好评率 编辑:程序博客网 时间:2024/06/05 02:13
Swift与OC不同:
1,switch
支持任意类型的数据以及各种比较操作——不仅仅是整数以及测试相等。
// switch语句支持任意类型的数据以及比较操作
let vegetable ="red pepper"
var vegetableCommon:String? =nil
switch vegetable{
case"celery":
vegetableCommon = "add some pepple"
case"cucumer","whitecress":
vegetableCommon = "that would make a good tea"
caselet xwhere x.hasSuffix("pepper"):
vegetableCommon = "is it a spicy\(x)?"
default:
vegetableCommon = "everything tastes good in soup"
}
print("switch输出\(vegetableCommon)")
2,函数可以返回多个值
//使用一个元组来返回多个值
func getGasPrices() -> (Double,Double,Double)
{
return (3.33,3.43,3.53)
}
print(getGasPrices())
3,函数可以嵌套,被嵌套的函数可以访问外侧函数的变量被嵌套的函数可以访问外侧函数的变量
//函数嵌套内侧函数也可以访问外侧变量
var xx =8
func returnFifteen() ->Int {
var y =10
func add() {
xx += 5
y += 5
}
add()
return xx
}
print("函数嵌套\(returnFifteen())")
函数也可以当做参数传入另一个函数。
4,函数实际上是一种特殊的闭包,你可以使用{}
来创建一个匿名闭包。使用in
将参数和返回值类型声明与闭包函数体进行分离。
- // 参数一:数组
- // 参数二:一个闭包:带有两个参数,这两个参数类型与数组中的元素类型相同,返回值是Bool
- var names = ["Swift", "Arial", "Soga", "Donary"]
- // 第一种方式:使用函数
- func backwards(firstString: String, secondString: String) -> Bool {
- return firstString > secondString // 升序排序
- }
- // 这里第二个参数,传了一个函数
- // reversed is equal to ["Swift", "Soga", "Donary", "Arial"]
- var reversed = sort(nams, backwards)
- // 第二种方式:使用闭包方式
- // 完整闭包写法是在花括号内有参数列表和返回值,用关键字in表明闭包体的开始
- // (firstString: String, secondString: String) 闭包参数列表
- // -> Bool 指明闭包返回值类型是Bool
- // in关键字表明闭包体的开始
- reversed = sort(names, { (firstString: String, secondString: String) -> Bool in
- return firstString > secondString
- })
reversed = sort(names, { (firstString: String, secondString: String) -> Bool in return firstString > secondString})
reversed = sort(names, { (firstString, secondString) in return firstString > secondString})
reversed = sort(names, { firstString, secondString in firstString > secondString})
reversed = sort(names, { $0 > $1 })
// 最简单的一种写法:使用操作符
reversed = sort(names, >)
5,swift注释的不同
与c语言多行注释不同,swift的多行注释可以嵌套在其他的多行注释之中
/* hahahhahhahah
/* hahhaha*/
hahahhahah*/
通过运用嵌套多行注释,你可以快速方便的注释掉一大段代码,即使这段代码之中已经含有了多行注释块
6,swift可以用分号也可以不用分号,如果你要在一行内写多条独立的语句,就要用分号了
let cat = ""; print(cat)
7,swift是一个类型安全的语言,会在编码的事后进行类型检查,保证类型一致
8,在swift中可以对浮点数进行取余运算% 例如:8%2.5 == 0.5 ,swift还提供了c语言没有的表达两数之间的值得区间运算符(a..<b和a...b)
9,多元组 let (x,y) = (1,2) 此时x等于1,y等于2,与c语言和OC不同,swift赋值操作符不返回任何值,所以下面代码是错误的
if x = y{
}
- Swift 学习(一)
- Swift学习(一)
- Swift学习(一)
- swift学习(一)HelloWorld
- Swift学习笔记(一)
- 学习Swift笔记 (一)
- swift学习笔记(一)
- swift 学习记录(一)
- Swift学习记录(一)
- Swift学习——Swift基础详解(一)
- Swift学习笔记(一)——Swift的数据类型
- 零基础从头学习Swift(一):Swift环境搭建
- Swift学习笔记一(基础部分)
- Swift学习笔记一(变量)
- 《Swift权威指南》学习笔记(一)
- Swift学习笔记(一) Optional
- swift学习 一 基础部分 (上)
- Swift 学习之路(一)
- Spark进阶学习——Stage划分
- UNIX网络编程—SCTP编译运行错误及解决
- HACMP下HDLM特殊配置/HDLM卸载
- 设置ARC工程兼容非ARC
- webview加载H5页面使用本界面且可以点击(浏览器不会跳转)
- Swift学习(一)
- 14.4.1 InnoDB Startup Configuration
- c# Thread
- 收录几段DEP方法后置脚本
- GoldenGate、DataGuard与Stream Replication在数据同步和迁移方面的区别—理论篇
- 开发中查看日志的几个基本的Linux命令
- Android 在 Multidex 下使用 Instant Run
- 项目经理问:我怎么有做不完的事情-事件篮方法
- Linux设备驱动之字符设备(二)