第一个项目

创建 OS X playground 需要引入 Cocoa

import Cocoa

var myString = "Hello, World"

print(myString)

创建ios playground 需要引入 UIKit

improt UIKit

var str = "Hello, World"

print(str)

 

注释

1.
// 单行注释

2.
/* 多行注释,
可以跨行*/

3.
/* 第一行注释

  /*嵌套的第二行注释*/

第三行结尾*/

 

分号

swift不要求每行语句使用(;)结束,但是一行书写多行时,必须用(;)隔开

improt UIKit

var str = "Hello, World";  print(str)

 

标识符

1. 区分大小写
2. 可以以字母和下划线_开头,但不能以数字开头
3. 中间可以是下划线_,字母和数字
4. 如果使用关键字作为标识符,可以在关键字前后添加重音符号(`)

例如:

let `class` = "hello"

 

关键字

含有以下四种:

1. 与声明有关的关键字:class、 deinit、 enum、 extension、func 、import、 init、 internallet 、operator 、private 、protocol、public、 static 、struct 、subscript、typealias 、var

2. 与语句有关的关键字: break 、case、 continue 、default、do 、else 、fallthrough、 for、if、 in、 return 、switch、where、 while 

3. 表达式和类型关键字: as 、dynamicType、 false、 is、 nil、 self、 Self 、supertrue 、_COLUMN_、 _FILE_、 _FUNCTION_、_LINE_

4. 在特定上下文中使用的关键字: associativity、 convenience 、dynamic 、didSet、final、 get 、infix、 inout、lazy、 left 、mutating 、none、nonmutating 、optional 、override 、postfi、precedence 、prefix 、Protocol 、required、

right、 set 、Type、 unowned、weak 、willSet

 

空格

swift不忽视空格

 

字面量

自动识别类型

1        // 整形字面量
2.1      // 浮点型字面量
"hello"  // 字符串型字面量
true     // 布尔型字面量

 

打印输出

使用print 进行输出

 

数据类型
任何编程语言都需要使用各种数据类型来存储不同的信息,以便于决定这些信息如何存储在计算机的内存中

swift提供了非常丰富的数据类型,常用的有以下几种:

Int

和数据库定义Int不同,swift不需要专门指定证书的长度,他的长度等于当前平台的原生字长,即:

32位平台上,Int的长度为32
64位平台上,Int的长度为64

如果有特殊需求,也可以自己规定Int长度,如Int10, Int6

UInt

无符号类型

注意: 尽量不要使用UInt,除非你真的需要存储一个和当前平台原生字长相同的无符号整数。除了这种情况,最好使用Int,即使你要存储的值已知是非负的。统一使用Int可以提高代码的可复用性,避免不同类型数字之间的转换,并且匹配数字的类型推断。

Float  Double

浮点数类型比整型表示的范围更大:

 

Double表示64位浮点数,最少有15位
Float表示32位浮点数,最少有6位

 

Bool
不同于js,swift的布尔类型叫做Bool,表示true或者false,nil 表示没有值。

 

 

String

和js完全一样

 

Character

只能是单个字母

例如:

var c = 2

Optional

可选类型,用来处理可能缺失的值

 

 

 

类型数值范围

 

类型         大小(字节)    区间值
Int8        1 字节         -128127
UInt8       1 字节         0255
Int32       4 字节         -21474836482147483647
UInt32      4 字节         04294967295
Int64       8 字节         -92233720368547758089223372036854775807
UInt64      8 字节         018446744073709551615
Float       4 字节         1.2E-383.4E+38 (~6 digits)
Double      8 字节         2.3E-3081.7E+308 (~15 digits)

 

 

类型别名

类型别名可以对当前的类型定义另一个名字,通过typealias关键字类定义

语法如下:

 

 

typealias newname = type

 

例如定义Int的类型别名位Zoom

typealias Zoom = Int

因此,我们可以用别名来定义常量

 

 

import Cocoa

typealias Zoom = Int
var str: Zoom = "hello"
print(str)

 

 

类型安全

swift是一个类型安全的语言,所以,在编译代码是会进行类型检查,并把不匹配的类型标记为错误,因此,swift我们也可以称其为动态类型的强类型语言

 

import Cocoa
var num = 1
num = "hello"
print(num)

运行后,会在Xcode中报错:

error: cannot assign value of type 'String' to type 'Int'
num = "hello"

也就是我们不能把string类型的赋值给Int类型

 

类型推断

也就是说当你没有显示的规定数据类型的时候,swift会使用类型推断来选择合适的类型

例如:

var a = 1  // a为Int类型

var b = "333" // b为String

var c = 1 + 2.333  // c为Double类型

 

常量

和js不同,swift常量的定义是用let,定义之后不能修改,也可以指定类型声明, 例如:

let Int: num = 1

 

转义

转义字符       含义
\0           空字符
\\           反斜线 \
\b           退格(BS) ,将当前位置移到前一列
\f           换页(FF),将当前位置移到下页开头
\n           换行符
\r           回车符
\t           水平制表符
\v           垂直制表符
\'           单引号
\"           双引号
\000         1到3位八进制数所代表的任意字符
\xhh...      1到2位十六进制所代表的任意字符

 

运算符

swift提供以下运算符

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 赋值运算符
  • 区间运算符
  • 其他运算符

其用法和js类似,这里不多做介绍

 

条件语句

swift支持if…else语句以及switch,并且支持三元运算符,用法和js一样

 

循环语句

for…in: 用来遍历一个集合,即使是一个字符串,也能通过for…in…遍历,注意swift的循环是从1开始的

例如:

import Cocoa

for i in 1...5 {
   print(i)  
}

//1
//2
//3
//4
//5


var arr:[String] = ['a','b,'c'
]

for i in arr {
  pring('i的值为/(i)')
}

// a
// b
// c

while: 当为真时做一些事情

例如:

import Cocoa

while 1 < 2 {
  print('yes')  
}

repeat…while: 先执行,执行完后判断

例如:

import Cocoa

repeat {
  print('yes')  
}while 1 < 2

 

循环控制语句

循环控制语句改变你代码的执行顺序,通过它你可以实现代码的跳转。Swift 以下几种循环控制语句

控制语句 描述

continue 语句

告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。

break 语句

中断当前循环。

fallthrough 语句

如果在一个case执行完后,继续执行下面的case,需要使用fallthrough(贯穿)关键字。

 

字符串

字符串通常用isEmpty来判断该字符串是否为空

 

数组

 

版权声明:本文为qisi007原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/qisi007/p/11106640.html