注释
单行形式:
//第一行注释
//第二行注释
多行形式:
/*
这里是注释的多行形式
想写什么都可以
...
*/
嵌套形式:
/*
外层注释
balabala...
/*
内层注释
balabala...
*/
*/
打印
/*
控制台打印,如果你喜欢文件形式可以研究下重定向。
忘掉 NSLog(@"balabala...") 蹩脚的语法吧
*/
print("不用再写@了,幸福")
//源文件中的定义
public func print(_ items: Any..., separator: String = default, terminator: String = default)
public func print<Target>(_ items: Any..., separator: String = default, terminator: String = default, to output: inout Target) where Target : TextOutputStream
/*
从这里开始,需要注意了。相较于OC,语句的结尾再也不用带上拖油瓶了 对就是它 ";"
另外,print 函数也体现了Swift下重载的概念。
那些让你觉得蒙蒙的字符,这里剧透下。
<Target> //泛型
_ //忽略符,这里用于隐去外部参数名
inout //还记得传址参数的概念么,该关键字就是用来表明这种行为的。
Any //public typealias Any = protocol<> ,Swift中任何类型(如Int、String、Struct、Enum...)都会遵循这个协议,反过来说Any可以用来表示任何类型。
... //表示可变参数
//eg: (to output: inout Target) 关于内部参数名和外部参数名
// to 是外部参数名,表示外部在调用此函数时必须显式的携带to这个参数名。
// output 是内部参数名,表示函数实体内部使用此参数名进行调用。
*/
基础运算符 常见的加减乘除Swift当然也要有
eg.: 1 + 2
eg.: 3- 2
eg.: 3*6 / eg.: 4/5
这里停顿下,这些操作符很简单吧 但是上面的例子是有错误的,是语法错误。
+ eg.: 1 + 2
- eg.: 3- 2 // Error
* eg.: 3*6
/ eg.: 4/5
/*
这个问题涉及到操作符的 关联性 associativity 和 优先级 precedence.(自定义操作符的时候,你会体会深刻)
运算符使用的位置: prefix、infix、postfix
associativity 有三个值:left、right、none
precedence 默认值是:100
示例中操作符属于infix,所以swift 建议在操作符前后添加空格或移除掉空格。这应该是编译器特性导致的,所以要有一定规范。
*/
//浮点型计算
22.0 / 7.0
//除余计算
28 % 10
// (等同于上面的表达式)
(28.0).truncatingRemainder(dividingBy: 10.0)
/*
移位操作 这个有基础的应该都了解了
这里主要说一下,移位运算相对于其它操作会高效。
*/
<<、>>
/*
运算符的优先级及结合方向(这一点和其它编程语言以及数学上概念没有不同)
明智的做法是,在表达式中嵌入()显式的为编译器提供运算依据。
*/
((8000 / (5 * 10)) - 32) >> (29 % 5)
350 / 5 + 2
350 / (5 + 2)
//数学函数
sin(45 * Double.pi / 180) //正弦函数
cos(135 * Double.pi / 180) //余弦函数
(2.0).squareRoot() //平方根
max(5, 10) //双值最大数
min(-5, -10) //双值最小数
//eg.:
max((2.0).squareRoot(), Double.pi / 2)
//命名空间 相关
/*
在Swift中使用Unicode characters命名是合法的。
命名语法
var variableNumber: Int = 42
这里啰嗦几句
var 关键字表示变量
variableNumber 变量名
: Int 表示类型约束,这种约束语法在Swift中大量存在。这里表明,声明的类型是整型
虽然使用任意字符进行命名是合法的,但是还是别过火哦 毕竟代码可能别人也会看,需要起有意思的名字。另外驼峰命名法也是不错的规范~~~
*/
//复合运算符
var counter: Int = 0
counter += 1
counter -= 1
//等同于
var counter: Int = 0
counter = counter + 1
counter = counter - 1
counter = 10
counter *= 3
counter /= 2
let a = 3 //常量 let 关键字
Tip:来丰富下英文词汇
Add: +
Subtract: -
Multiply: *
Divide: /
Remainder: %
Add and assign: +=
Subtract and assign: -=
Multiply and assign: *=
Divide and assign: /=