最近一直边忙毕设边学Swift,终于看完了官方的教程(语言参考暂不打算看),在iBooks上做了一些笔记(看英文伤不起),感觉Swift是一门大杂烩类型的语言,我会记录一些我自认为以前遇到较少或者需要重点记忆的语法特性,在此作为分享,这次是运算符的重载,几乎每门语言都有,只是语法不一样罢了。 (2014-8-8更新至beta5语法) 运算符重载 在Swift的官方文档中运算符重载叫做运算符函数(O
Swift解读专题三——基础运算符 一、引言 运算符是编程语言不可缺少的一个部分,Swift中除了支持C中的运算符外,还提供了一些更加强大的运算符功能,例如取余符%可以用来计算浮点数,另外新增了两种范围运算符。Swift中有3类运算符: 1.一元运算符 运算符作用于一个操作数,可以出现在操作数前或者操作数后。 2.二元运算符 运算符作用于两个操作数,出现在两个操作数中间。 3.三
PART_A 运算符 赋值运算符:= 普通赋值 var num
num = 5 元组赋值 let (x, y) = (0, 0) = 操作不返回任何值 算数、组合赋值、自增自减、、负号、字符串拼接 求余时符号只看左边,可对浮点数求余 let a = 3, b = 4
// 算数运算
var c = 0
c = a + b
c = a - b
c = a * b
c = a / b
c = a
Swift专题讲解二十三——高级运算符 一、引言 除了前边博客中介绍的基本运算符外,Swift中还支持更多高级运算符,也支持开发者进行运算符的自定义。Swift中的算符运算符有一个特点,其不会产生溢出,如果有操作产生溢出,程序会直接抛出异常。如果开发者在开发中需要有溢出操作,需要使用溢出操作符来实现。 二、位运算符 Swift支持C语言中的全部位运算符,示例如下:
大家知道Swift中拥有和C,Objc类似的算术运算符,它们分别是: + - * / % 但是你可能不知道这些Swift中的运算符和C,Objc语言中的有一个很大的不同之处,就是它们不可以被”溢出”,无论是上溢还是下溢! 在C之类的较低级语言中,如果对可能发生溢出的算术数值做算术运算,结果就会发生所谓的上溢或下溢,比如你对最大的Int32正数加一结果是一个极大的负数:-2147483648 不过在
高级运算符 文档地址 作为 基本运算符 的补充,Swift 提供了几个高级运算符执行对数传值进行更加复杂的操作。这样写运算包括所有你从 C 或 Objective-C 所熟悉的按位操作和移位运算符。 与 C 的算术运算符不同,Swift 中算术运算符默认是不会溢出的。溢出行为都会作为错误被捕获。为了允许溢出行为,可以使用 Swift 中另一套默认支持的溢出运算符,比如溢出加法运算符(&+)。所有这
// Swift区间运算符
// 闭区间
for index in 1...10
{
index
}
// 前闭后开区间
let cour = ["he","hong","bo"];
for i in 0..<cour.count
{
cour[i]
}
参考Swift 官方教程《The Swift Programming Language》中文版 基本运算符 运算符是检查、改变、合并值的特殊符号或短语。例如,加号+将两个数相加(如let i = 1 + 2)。复杂些的运算例如逻辑与运算符&&(如if enteredDoorCode && passedRetinaScan),或让 i 值加1的便捷自增运算符++i等。 Swift 支持大部分标准 C
运算符是一个符号,用于告诉编译器执行一个数学或逻辑运算。 Swift 主要提供了以下6种运算符 1、算术运算符:加+、减-、乘*、除/、求余%、自加++、自减-- 2、比较运算符:等于==、不等于!=、大于>、小于<、小于等于<=、大于等于>= 3、逻辑运算符:逻辑与&&、逻辑或||、逻辑非(取反)! 4、位运算符:按位与&、按位或|、按位异或^、按位取反~、左移<<、右移>> 5、赋值运算符:等
默认情况下,当你往一个整型常量或变量赋于一个它不能承载的大数时,Swift不会让你这么干的,它会报错。这样,在操作过大或过小的数的时候就很安全了。 例如,Int16整型能承载的整数范围是-32768到32767,如果给它赋上超过这个范围的数,就会报错: var potentialOverflow = Int16.max
// potentialOverflow 等于 32767, 这是 Int16
运算符,基本的加减乘除和赋值运算等 //: 赋值运算符(=)
var string = "张三"
var(x,y) = (100,100) +-*/ let a = 10 + 4
let b = 10 - 4
let c = 10 * 10
let d = 10/2
let e = 10.5/2.3
//字符串的拼接也可以用+代替
var newstring = "hi" + "playgr
常用的比较运算符,> < >= <= … 建议在 playground 的中边敲边看效果,因为是实时输出的,所以效果比较明显,逻辑上没什么难度,只是简单的比较而已 //比较元组:从左到右依次比较,比较出结果就结束
var zhangsan = (age:18,name:"zhangan")
var lisi = (age:20,name:"lisi")
zhangsan > lisi
"ab
三目运算符 三目运算符由问号和冒号组成,先是一个表达式,判断语句,如果成立,就执行冒号前面的,如果不成立就执行冒号后面的,一对二的选择判断语句 比如:一个小伙得了一百分 let score = 100 如果90以上算优秀,90分一下算良好 var level:String?
if score > 90 {
level = "优秀"
}else{
level = "良好"
} 以前
空合运算符: ?? (两个问号) 运算方式:一个可变类型的值,如果有值,就把本身赋值给一个常量或者变量,如果为 nil,就把 ?? 右边的值赋值过去 这里配合三目运算符做举例说明 //第一种
var name:String?
if name != nil {
//不为空时强制解包,不会报错
name!
}else {
print("name = nil");
} // 第
区间运算符(…),一般用于 for 循环 //1~10 包括10
1...10
for index in 1...10{
print( index)
} //半开区间运算符
//1~10 不包括10
for index in 1..<10{
print(index)
} var names = ["name1","name2","name3","name4","name5"]
na
/** 赋值运算符 = += %= *= /= 本质上是对内存的写操作 */ let b = 10 var c = 9 var d:Int c = 6 // c语言中可以这样子,但是 在swfit中
/** 赋值运算符 > < <= >= != 三元条件运算符 ? : */ let res:Bool = 5 == 5 print(res) if 5 > 3
/** 逻辑运算符 与&& 或|| 非! */ let allowLeave = false if !allowLeave { print("NO")
/** 闭区间运算符: (a...b) (1..3) 代表的就是 1, 2, 3 半闭区间 (a..b) a 到 b 的前一个元素 */ // _ 表示通配符 for _ in 1...5 {
/** 恒等运算符 */ class Rect { // 结构体成员变量 var width: Double = 5.0 var height: Double = 6.0