博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift 了解
阅读量:5270 次
发布时间:2019-06-14

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

本篇仅于个人小记,记录个人不熟悉的知识点儿。如若要了解更全,请前往如下网址:

1.Swift 标记

  • 分号:Swift不要求在每行语句的结尾使用分号(;), 但同一行书写多条语句时,必须用分号隔开;
  • 标识符:给变量、常量、方法、函数、枚举、结构体、类、协议等制定的名字。命名规则如下:
  1. 区分大小写、
  2. 标识符的首字符可以以下划线(_)或者字母开始,但是不能数字
  3. 标识符其他字符可以是下划线(_)、字母或者数字
  4. 变量名也可以用中文名来命名

注意:Swift中的字母采用的是Unicode编码[1]。Unicode叫做统一编码制,它包含了亚洲文字编码,如中文、日文、韩文等字符,甚至是我们在聊天工具中使用的表情符号。如果一定要使用关键字作为标识符,可以在关键字前后添加重音符号(`)。

 

  • Swift空格:Swift对空格的使用有一定的要求,运算符不能直接跟在变量或者常量的后面,推荐的写法如下:
let a = 1 + 2;  // 编码规范推荐使用这种写法
  •  Swift 字面量:特定的数字、字符串、布尔值,能够直接了当地指出自己的类型并为变量进行赋值
42                 // 整型字面量3.14159            // 浮点型字面量"Hello, world!"    // 字符串型字面量true               // 布尔型字面量
  •  类型别名:typealias
  • Swift 可选(Optionals)类型:用于处理值确实的情况;用“ ?”作为命名类型Optional的简写
  • 整型字面量:整型字面量可以是一个十进制、二进制(0b)、八进制(0o)或者16进制(0x)。 
let decimalInteger = 17           // 17 - 十进制表示let binaryInteger = 0b10001       // 17 - 二进制表示let octalInteger = 0o21           // 17 - 八进制表示let hexadecimalInteger = 0x11     // 17 - 十六进制表示
  •  闭区间运算符:1...5区间值为:1 2 3 4 5 ; 1..<5区间值:1 2 3 4;

2.语法

  • 字符串中插入值:字符串插值是一种构建新字符串的方式,可以在其中包含常量、变量、字面量和表达式。插入的字符串字面量的每一项都在以 反斜线为前缀的圆括号中: var stringA = "\(varA) 乘于 \(constA) 等于 \(varC * 100)"
  • 字符串的链接:字符串可以通过 + 号 来连接,如下: var stringA = constA + constB
  • 字符:是一个单一的字符字符串字面量,数据类型为 Character(如果给赋连个字符就会出错);同时也不能赋值  空字符变量
  • 数组:Swift数组会强制检测元素的类型,如果类型不同则会报错;应该遵循像Array<Element>这样的形式,即这个数组中只能允许存在唯一一种数据类型。可以通过apped()方法或者赋值运算符 += 在数组末尾添加元素。如果我们同时需要每个数据项的值和索引值,可以使用 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)")}--------》运行结果在 index = 0 位置上的值为 Apple在 index = 1 位置上的值为 Amazon在 index = 2 位置上的值为 Runoob在 index = 3 位置上的值为 Google

    通过只能可读属性 isEmpty 来判断数组是否为空

  • 字段:用来存储无序的相同类型的数据集合,与数组相似,会强制检测元素的类型。如果元素的类型不同,会报错。定义格式如下:
    var someDict =  [KeyType: ValueType]() --》例如: var someDict = [keyType : ValueType]()

            创建一个新的字典,如下:var someDict:[Int : String] = [1:"One",2:"Two",3:"Three"]

           使用updateValue(forKey:)增加或更新字典的内容。如果key不存在,则添加值,如果存在则修改key对应的值。

           使用removeValueForKey() 或者通过指定健的值为nil来移除key-value对。

     使用 for-in 循环来遍历某个字典中的键值对

3.Swift函数

   swift函数包含了参数类型及返回值类型, swift定义函数使用关键字 func; 可以指定一个或者多个输入参数和一个返回值类型

   语法如下:

func funcname(形参) -> returntype{   Statement1   Statement2   ……   Statement N   return parameters}

    元组作为函数返回值, 其中函数返回值类型可以是字符串、整型、浮点型等。元组与数组蕾丝,不同的是,元组的元素可以是任意类型,使用的时候是用 圆括号 , 去数据的时候,用点语法来取值。如下代码:

 

func minMax(array: [Int]) -> (min: Int, max: Int) {    var currentMin = array[0]    var currentMax = array[0]    for value in array[1..
currentMax { currentMax = value } } return (currentMin, currentMax)}let bounds = minMax(array: [8, -6, 2, 109, 3, 71])print("最小值为 \(bounds.min) ,最大值为 \(bounds.max)")

 注意:可选元组类型如(Int, Int)? 与元组包含可选类型如(Int?, Int?)是不同的,可选的元组类型,整个元组是可选的,不是元组中的每个元素值可选。

  一般默认在函数中定义的参数都是常量参数,即这个参数你只可以查询使用,不能改变它的值。如果想要声明一个变量参数,可以在参数定义前加 inout 关键字,这样就可以改变这个参数的值。

如果不输入 inout这个参数,那_a 和 _b 不能重新赋值了。

  同时,可以将函数作为参数传递给另外一个参数。

 

4. Swift 闭包

   闭包 是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。

   语法如下:

{(parameters) -> return type in   statements}

 实例:

let divide = {(val1: Int, val2: Int) -> Int in    return val1 / val2 }let result = divide(200, 20)print (result)

 

转载于:https://www.cnblogs.com/lyz0925/p/7375206.html

你可能感兴趣的文章
动态链接库
查看>>
Magento开发文档(三):Magento控制器
查看>>
使用Docker官方的Django包【转】
查看>>
SuperSocket 学习
查看>>
给培训学校讲解ORM框架的课件
查看>>
此实现不是 Windows 平台 FIPS 验证的加密算法的一部分
查看>>
性能调优攻略
查看>>
线段树模板讲解
查看>>
ie6解决png图片透明问题
查看>>
瞬间的永恒
查看>>
docker overlay网络实现
查看>>
2019-8-5 考试总结
查看>>
jquery javascript 回到顶部功能
查看>>
JS中实现字符串和数组的相互转化
查看>>
用格式工厂将mts文件转换成其它格式flv,mpg失败
查看>>
web service和ejb的区别
查看>>
Silverlight StoryboardManager 故事板管理类
查看>>
Windows Azure Cloud Service (29) 在Windows Azure发送邮件(下)
查看>>
CS61A Efficiency 笔记
查看>>
ArcGIS Server Javascript 多图对比功能
查看>>