博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift学习笔记
阅读量:4558 次
发布时间:2019-06-08

本文共 3768 字,大约阅读时间需要 12 分钟。

第一个项目

创建 OS X playground 需要引入 Cocoa

import Cocoavar myString = "Hello, World"print(myString)

创建ios playground 需要引入 UIKit

improt UIKitvar str = "Hello, World"print(str)

 

注释

1.// 单行注释2./* 多行注释,可以跨行*/3./* 第一行注释  /*嵌套的第二行注释*/第三行结尾*/

 

分号

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

improt UIKitvar 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的长度为3264位平台上,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 字节         -128 到 127UInt8       1 字节         0 到 255Int32       4 字节         -2147483648 到 2147483647UInt32      4 字节         0 到 4294967295Int64       8 字节         -9223372036854775808 到 9223372036854775807UInt64      8 字节         0 到 18446744073709551615Float       4 字节         1.2E-38 到 3.4E+38 (~6 digits)Double      8 字节         2.3E-308 到 1.7E+308 (~15 digits)

 

 

类型别名

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

语法如下:

 

 

typealias newname = type

 

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

typealias Zoom = Int

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

 

 

import Cocoatypealias Zoom = Intvar str: Zoom = "hello"print(str)

 

 

类型安全

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

 

import Cocoavar num = 1num = "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为Stringvar 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 Cocoafor 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 Cocoawhile 1 < 2 {  print('yes')  }

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

例如:

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

 

循环控制语句

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

控制语句 描述

continue 语句

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

break 语句

中断当前循环。

fallthrough 语句

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

 

字符串

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

 

数组

 

转载于:https://www.cnblogs.com/qisi007/p/11106640.html

你可能感兴趣的文章
洛谷—— P1407 工资
查看>>
洛谷——P3128 [USACO15DEC]最大流Max Flow
查看>>
洛谷—— P1190 接水问题
查看>>
Windows Phone开发之Coding4Fun对话框操作类
查看>>
现代3D图形编程学习-关于本书
查看>>
linux系统下php安装mbstring扩展的二种方法
查看>>
gridview分頁:第一頁 下一頁 1 2 3 4 上一頁 最末頁
查看>>
Hadoop-MR实现日志清洗(一)
查看>>
Bootstrap 3之美01-下载并引入页面
查看>>
在Brackets中使用Emmet
查看>>
lodash用法系列(5),链式
查看>>
ASP.NET Web API的安全管道
查看>>
推荐一个好用的 sqlite 管理器 sqliteman 感觉比 navicat 好用
查看>>
第三周学习进度报告
查看>>
使用JSON Web Tokens和Spring实现微服务
查看>>
JS学习笔记 - 运动 - 淘宝轮播图
查看>>
之字形打印矩阵
查看>>
POJ 1004 Financial Management
查看>>
HDU 2011 多项式求和
查看>>
docker network
查看>>