Swif语法基础 要点归纳(一)
2024-09-29 04:30:15
常量和变量
- 用let声明常量
let m
= 20
= 20
- 用var声明变量
var n = 0
- 类型推导机制
声明常量或变量时。能够不指定常量/变量类型,编译器会依据初始化值自己主动推导类型。也能够显示指定变量类型:
var str:String
= "12345"
= "12345"
var num:UInt
= 12
= 12
var i:Float
= 3.14
= 3.14
数据类型
类型别名
- 能够使用typealiaskeyword定义类型别名。跟C语言的typedef作用类似
typealias
XXInt =
Int;
XXInt =
Int;
//给Int类型去了以个别名XXInt
运算符
赋值运算符
- 一对一赋值
var
a =
20
a =
20
var
b =
a
b =
a
- N对N赋值
let
(x, y) = (10,
20)
(x, y) = (10,
20)
- 跟C/OC不一样。Swift赋值运算符没有返回值
- OC
int
a =
10;
a =
10;
int b = a =
;
;
//以上赋值语句正确,b
= 20
= 20
Swift
var b = a =
20;
20;
if
(a
=
b) { }
(a
=
b) { }
//以上赋值语句错误。b没有值。()中的表达式也没有值,能够防止误用=和==
求余运算符
- 求余结果的符号取决于%左边数字的符号(与C/OC一样)
- 能够对浮点数求余
var z =
8 %
2.5 //0.5
Bool类型
- 在C语言中,0是假。非0是真。在Swift中Bool类型就两种值:
true:真
false:假
- if语句的条件必须是Bool类型
范围运算符
- 范围运算符用来表示一个范围,有2种类型的范围运算符
闭合范围运算符:a…b,表示[a, b],包括a,b
半闭合范围运算符:a..<b,表示[a, b), 包括a,不包括b
for
index
in 0..<5
{
index
in 0..<5
{
print(index)
}
溢出运算符
每种数据类型都有自己的取值范围,默认情况,一旦赋值一个超出范围的数值,就会产生编译错误或执行时错误。
- Swift为整形计算提供了5个&开头的益处运算符,能够对超出范围的值进行处理。
&+、&-、&/、&*、&%
上溢出
var
x:UInt8
=
255;
x:UInt8
=
255;
var
y =
x &+
1 //y的值为0
y =
x &+
1 //y的值为0
下溢出
var
x:Int8
= -128;
x:Int8
= -128;
var
y =
x &-
1 //y的值为127
y =
x &-
1 //y的值为127
除0溢出
var
x =
10;
x =
10;
var
y =
x &/
0
//y的值为0
y =
x &/
0
//y的值为0
var
x =
10;
x =
10;
var
y =
x &% 0
//y的值为0
y =
x &% 0
//y的值为0
元组类型
- 什么是元组类型?
元组类型由N个随意类型的数据组成(N >=0)
组成元组类型的数据称为“元素”
var
point = (x:10.0, y:20.0)
point = (x:10.0, y:20.0)
//point有两个元素,x、y是元素名称
let
person = (name:
"Job")
person = (name:
"Job")
//person仅仅有name一个元素
let
data = ()
data = ()
//空元组
- 元组的訪问
用元素名称訪问
let
value =
point.x
//取值
value =
point.x
//取值
point.x =
30.0
//设值
30.0
//设值
用元组位置訪问
let
value =
point.0
//取值
value =
point.0
//取值
point.0
=
30.0 //设值
=
30.0 //设值
假设用let修饰一个元组,那么该元组为常量。无法改动元素的值
- 元组的输出
能够直接输出元组来查看全部元素的值
print(point)
- 使用细节
能够省略元素名称
var
point = (10.0,
20.0)
point = (10.0,
20.0)
let
person = (20,
"Job")
person = (20,
"Job")
能够显式指定元素的类型
let
person:(UInt8,
String) = (20,
"Job")
person:(UInt8,
String) = (20,
"Job")
peson的第一个元素仅仅能是UInt类型。第二个元素仅仅能是String类型
在显示指定元素类型的情况,不能加入元素名称,以下的语句是错误的
let
person:(UInt8,
String) = (age:20,
name:"Job")
person:(UInt8,
String) = (age:20,
name:"Job")
能够用多个变量接收元组数据
var
(x, y) = (20,
30)
//x是20,
y是30
(x, y) = (20,
30)
//x是20,
y是30
var
point = (x,
y)
//point由两个元素组成,各自是20,30
point = (x,
y)
//point由两个元素组成,各自是20,30
能够将元素赋给多个变量
var
point = (20,
30)
point = (20,
30)
var
(x, y) =
point
//x是20,
y是30
(x, y) =
point
//x是20,
y是30
能够用_(下划线)忽略某个元素的值,仅仅取出其它元素的值
let
person:(UInt8,
String) = (20,
"Job")
person:(UInt8,
String) = (20,
"Job")
var
(_,name) =
person
(_,name) =
person
最新文章
- WPF 中的image控件的Source如何赋值
- dll 日志文件 放在同一个目录。
- telnet 使用
- iOS定时器、延迟执行
- Mac 下安装mitmproxy
- 用于主题检测的临时日志(383b4f88-5dc7-4b08-a585-27104eb4ee7f - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
- keil优化等级设置
- (转)java判断string变量是否是数字的六种方法小结
- 第3阶段——内核启动分析之prepare_namespace()如何挂载根文件系统和mtd分区介绍(6)
- EXIT_SUCCESS EXIT_FAILURE
- SQLSERVER存储过程语法详解
- Android学习笔记:对Android应用进行单元测试
- Python3标准库
- 【Unity】不能新建项目
- 初学Linux(一)关闭操作shutdown halt reboot
- Ionic入门六:按钮
- 机器学习—集成学习(Adaboost)
- New Year_2019
- Redis总结(一)Redis安装(转载)
- ubuntu下刷新dns
热门文章
- UVA10154 Weights and Measures
- 简单粗暴!解决锐捷强制关闭VMware NAT Service的问题(图文教程)
- [LeetCode] Sort List 排序 sort
- IAT Hook
- centos 解决:Another app is currently holding the yum lock; waiting for it to exit
- os.path.isfile的错误
- EXCEL匹配结果match并跳转链接hyperlink
- J.U.C并发框架源码阅读(八)ArrayBlockingQueue
- Ubuntu14.04 在右键中添加 在终端中打开
- FZU-2218 Simple String Problem(状态压缩DP)