没有合适的资源?快使用搜索试试~ 我知道了~
材料菜鸟整理,仅用于个人学习,但是价值挺高,可以参考
资源推荐
资源详情
资源评论
swift(⼀)基础知识
本⽂主要内容来⾃菜鸟联盟,仅⽤于个⼈学习。啧啧——
import UIKit //加载类库
var str = “Hello, playground”
声明⽅式
命名可以⽤字母、数字、下划线,不能以数字开头,区分⼤⼩写(同oc) swift强类型语⾔,⾃动判断类型
变量
var varConstant = 2
var varx = 1, vary = 2, varz = 3
var varString: String = "varString"
var varx1, varx2, varx3: Int //
这种声明⽐较少见
常见数据类型
Int、String、UInt、Float(表⽰32位浮点数)、Double(表⽰64位浮点数)、Bool、Character、Optional(使⽤可选类型来处
理值可能缺失的情况。可选类型表⽰有值或没有值。)Array, Dictionary, Struct, 和 Class
Double精确度很⾼,⾄少有15位数字,⽽ Float 最少只有6位数字
在 32 位系统上, Int 和 Int32 长度相同。
在 64 位系统上, Int 和 Int64 长度相同。
在 32 位系统上, UInt 和 UInt32 长度相同。
在 64 位系统上, UInt 和 UInt64 长度相同。
Int8, Int16, Int32, Int64 分别表⽰ 8 位, 16 位, 32 位, 和 64 位的有符号整数形式。
UInt8, UInt16, UInt32, UInt64 分别表⽰ 8 位, 16 位, 32 位 和 64 位的⽆符号整数形式。
Int.max//Int最⼤值
Int.min
print("(varConstant)") //在字符串中可以使⽤括号与反斜线来插⼊变量
let 常量⼀旦设定,在程序运⾏时就⽆法改变其值
let letConstant = “letConstantString”//let声明格式同var
类型别名
语法格式:typealias newname = type, 如定义了 Int 的类型别名为 Feet
typealias Feet = Int
var distance: Feet = 100
类型安全
var varA = 42
//varA = “This is hello”, 报错varA已经是Int类型,再给赋String类型,报错
/
类型推断
/
let meaningOfLife = 42 // meaningOfLife 会被推测为 Int 类型
let pi = 3.14159 // pi 会被推测为 Double 类型
//当推断浮点数的类型时,Swift 总是会选择Double⽽不是Float。如果表达式中同时出现了整数和浮点数,会被推断为Double类型
let anotherPi = 3 + 0.14159 // anotherPi 会被推测为 Double 类型
//1.3 Optional可选类型,⽤于处理值缺失的情况,可选表⽰"那⼉有⼀个值,并且它等于 x “或者"那⼉没有值”。
//语法格式:类型后缀加?作为命名类型Optional的简写,类型和?之间没有空格
var optionalInteger: Int? //简写
var optionalInteger1: Optional //或者这么写
//在这两种情况下,变量 optionalInteger 都是可选整数类型。注意,在类型和 ?之间没有空格。Optional 是⼀个含有两种情况的枚
举,None 和 Some(T),⽤来表⽰可能有或可能没有值。任何类型都可以明确声明为(或者隐式转换)可选类型。当声明⼀个可选类型的
时候,要确保⽤括号给 ? 操作符⼀个合适的范围。例如,声明可选整数数组,应该写成 (Int[])? 写成 Int[]? 会报错。
//当你声明⼀个可选变量或者可选属性的时候没有提供初始值,它的值会默认为 nil。
//可选项遵照 LogicValue 协议,因此可以出现在布尔环境中。在这种情况下,如果可选类型T?包含类型为T的任何值(也就是说它的值是
Optional.Some(T) ),这个可选类型等于 true,反之为 false。
//如果⼀个可选类型的实例包含⼀个值,你可以⽤后缀操作符 !来访问这个值,如下所⽰:
optionalInteger = 42
optionalInteger! // 42
强制解析
当你确定可选类型确实包含值之后,你可以在可选的名字后⾯加⼀个感叹号(!)来获取值。这个感叹号表⽰"我知道这个可选有值,请
使⽤它。"这被称为可选值的强制解析(forced unwrapping)。
var myString:String?
myString = "Hello, Swift!"
if myString != nil {
//print(myString) //Optional("Hello, Swift!")
//
强制解析
print( myString!) //Hello, Swift!
}else{
print("字符串为 nil")
}
⾃动解析
你可以在声明可选变量时使⽤感叹号(!)替换问号(?)。这样可选变量在使⽤时就不需要再加⼀个感叹号(!)来获取值,它会⾃动
解析。
var myString:String!
可选绑定
使⽤可选绑定(optional binding)来判断可选类型是否包含值,如果包含就把值赋给⼀个临时常量或者变量。
可选绑定可以⽤在if和while语句中来对可选类型的值进⾏判断并把值赋给⼀个常量或者变量。
格式:
if let constantName = someOptional {
statements
}
if let yourString = myString {
print("你的字符串值为 - \(yourString)")
}else{
print("你的字符串没有值")
}
浮点型字⾯量
1. ⼗进制浮点型字⾯量由⼗进制数字串后跟⼩数部分或指数部分(或两者皆有)组成。⼗进制⼩数部分由⼩数点 . 后跟⼗进制数字
串组成。指数部分由⼤写或⼩写字母 e 为前缀后跟⼗进制数字串组成,这串数字表⽰ e 之前的数量乘以 10 的⼏次⽅。例如:
1.25e2 表⽰ 1.25 10^2,也就是 125.0;同样,1.25e-2 表⽰ 1.25 10^-2,也就是 0.0125。
2. ⼗六进制浮点型字⾯量由前缀 0x 后跟可选的⼗六进制⼩数部分以及⼗六进制指数部分组成。⼗六进制⼩数部分由⼩数点后跟⼗
六进制数字串组成。指数部分由⼤写或⼩写字母 p 为前缀后跟⼗进制数字串组成,这串数字表⽰ p 之前的数量乘以 2 的⼏次
⽅。例如:0xFp2 表⽰ 15 2^2,也就是 60;同样,0xFp-2 表⽰ 15 2^-2,也就是 3.75 。
3. 负的浮点型字⾯量由⼀元运算符减号 - 和浮点型字⾯量组成,例如 -42.5。
浮点型字⾯量允许使⽤下划线 _ 来增强数字的可读性,下划线会被系统忽略,因此不会影响字⾯量的值。同样地,也可以在数字
前加 0,并不会影响字⾯量的值
var varFloat = 1000_000_000 //
增加可读性
let decimalDouble = 12.1875 //
⼗进制浮点型字⾯量
let exponentDouble = 1.21875e1 //
⼗进制浮点型字⾯量
let hexadecimalDouble = 0xC.3p0 //
⼗六进制浮点型字⾯量
字符串型字⾯量
字符串型字⾯量中不能包含未转义的双引号 (")、未转义的反斜线(\)、回车符或换⾏符。
字符串型字⾯量由被包在双引号中的⼀串字符组成,形式如下:
“characters”
转义字符 含义
\0 空字符
\ 反斜线
\b 退格(BS) ,将当前位置移到前⼀列
\f 换页(FF),将当前位置移到下页开头
\n 换⾏符
\r 回车符
\t ⽔平制表符
\v 垂直制表符
’ 单引号
" 双引号
\000 1到3位⼋进制数所代表的任意字符
\xhh… 1到2位⼗六进制所代表的任意字符
布尔型字⾯量
布尔型字⾯量的默认类型是 Bool。
布尔值字⾯量有三个值,它们是 Swift 的保留关键字:
true 表⽰真。false 表⽰假。nil 表⽰没有值。
运算符
算术运算符:+、-、
、/、% //swift3 中已经取消了++、–。
⽐较运算符:==、!=、>、<、>=、<=
赋值运算符:=、+=、-=、
=、/= 、%=、<<=(按位左移后再赋值C <<= 2 相当于 C = C << 2)、>>=、 &=(按位与运算后赋值C
&= 2相当于C = C & 2)、^=(按位异或运算符后再赋值C ^= 2相当于C = C ^ 2)、|=(按位或运算后再赋值C |= 2相当于C = C
| 2)
逻辑运算符:&&、||、!
位运算符:位运算符⽤来对⼆进制位进⾏操作,~,&,|,^分别为取反,按位与与,按位与或,按位与异或运算
区间运算符:闭区间运算符(a…b)如:1…5 区间值为 1, 2, 3, 4 和 5;半开区间运算符(a… 如:1…< 5 区间值为 1, 2, 3, 和 4
三元运算符:condition ? X : Y 如果 condition 为 true ,值为 X ,否则为 Y
条件语句: if、if else、white、switch等
循环语句
for-in、repeat…while(类似 while 语句区别在于判断循环条件之前,先执⾏⼀次循环的代码块。)
循环控制语句
continue 告诉⼀个循环体⽴刻停⽌本次循环迭代,重新开始下次循环迭代。
break 中断当前循环。
fallthrough 如果在⼀个case执⾏完后,继续执⾏下⾯的case,需要使⽤fallthrough(贯穿)关键字。
字符串 String
Unicode 字符串
Unicode 是⼀个国际标准,⽤于⽂本的编码,Swift 的 String 类型是基于 Unicode建⽴的。你可以循环迭代出字符串中 UTF-8 与
UTF-16 的编码
for code in stringA.utf8 {//nicodeScalars
print("\(code) ")
}
字符 Character
不能创建空的 Character(字符) 类型变量或常量
let char1: Character = "" error: cannot convert value of type 'String' to specified type 'Character'
便利字符串中的字符
for ch in "Runoob" {
print(ch)
}
数组
构造语法来创建⼀个由特定数据类型构成的空数组:
var someArray = [SomeType]()
var someArray = [String]()
someArray = ["aaa", "bbb", "ccc"]
创建⼀个初始化⼤⼩数组的语法:
var someArray = [SomeType](repeating: InitialValue, count: NumbeOfElements)
//
类型为
Int
,数量为
3
,初始值为
0
的空数组
var someInts = [Int](repeating: 0, count: 3)
var someInt:[Int] = [10, 20, 30]
var someAny = Array<Any>()
someAny = ["aaa", 2]
var someAnyObjectArray = [AnyObject]()
修改数组
可以使⽤ append() ⽅法或者赋值运算符 += 在数组末尾添加元素
someInt.append(20)
someInt += [40]
someInt[3] = 50
for item in someInt {
print(item)
}
如果我们同时需要每个数据项的值和索引值,可以使⽤ String 的 enumerate() ⽅法来进⾏数组遍历。实例如下:
var someStrs = [String]()
someStrs.append("Apple")
someStrs.append("Amazon")
someStrs.append("Runoob")
someStrs += ["Google"]
for (index, item) in someStrs.enumerated() {
print("在 index = \(index) 位置上的值为 \(item)")
}
var someStrings = [String]()
someStrings = ["ali"]
合并数组,同类型才能合并
var someS = someStrs + someStrings
字典
var someDict =
var someDict:[Int:String] = [1:“One”, 2:“Two”, 3:“Three”]
访问字典
var someVar = someDict[1]
剩余44页未读,继续阅读
资源评论
BOBO56SH2
- 粉丝: 1
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功