swift 2.0语法 元组】的更多相关文章

import UIKit /*: 元祖 * 可以将多个值保存在一起 * 格式: (数值1, 数值2, 数值3) * 特点: 元祖可以保存不同数据类型的值 * 用途: 在C/OC中如果一个函数想返回多个值需要借助指针, 而在Swift中有了元祖之后就不用通过指针了 * 元祖和数组一样, 可以通过索引访问元祖中保存的值 * 除此之外, 还可以给每一个值起一个名字, 将来通过这个名字访问对应的值 * 除此之外, 还可以在定义的同时就取出元祖中的值 */ let numbers = (10, 11, 1…
//: Playground - noun: a place where people can play import UIKit /*: 字符串 * OC中的字符串是一个对象, Swift中的字符串是一个结构体 * OC中的字符串以\0结尾, Swift中的字符串不是以\0结尾 * Swift中的字符串比OC中的字符的性能要好 * Swift中的字符串支持遍历 */ let str = "abc\0def" print(str) // 遍历字符串 for c in str.chara…
//: Playground - noun: a place where people can play import UIKit /*: 函数 * 格式 func 函数名称(形参名称1: 形参类型, ...) -> 返回值类型 { // 逻辑代码 } * 没有参数没有返回值 * 没有参数有返回值 * 有参数没有返回值 * 有参数有返回值 */ // 没有参数没有返回值 // 如果函数的返回值是Void, 那么可以简写为() // 如果函数的返回值是(), 那么可以直接不写 func say()…
//: Playground - noun: a place where people can play import UIKit /*: for循环 * 基本用法和OC一致 * 条件表达式必须是bool类型的值 * 条件表达式的()可以省略 * 在OC中如果{}中只有一条语句, 那么{}可以省略, 而Swift不可以 */ for var i = 0; i < 10; i++ { print(i) } /*: 区间 半闭区间: 0..<10  包含头不包含尾 闭区间:   0...10  包…
import UIKit /*: 可选类型(可以有值, 也可以没有值) * 在OC中我们可以给一个对象类型变量赋值为nil或者一个对象, 而在Swift中如果想给一个变量赋值为nil那么必须明确指定为可选类型才可以, 也就是说普通变量是不能赋值为nil的 格式:  数据类型? *  以后但凡看到init后面跟上一个?, 就代表初始化方法返回的值是可选的 注意: * 可选类型是不能直接使用的, 如果向使用一个可选类型的值, 必须对可选类型进行解包 ! * 解包的含义: 告诉系统可选类型的变量, 一…
import UIKit // 注意: Swift中可以不写;号, 但是有一定的前提条件, 一行只有一句代码 //      如果一行有多句代码, 那么;还是必须写 // 注意: Swift变态的地方, 有时候运算符的左右如果没有写空格就会报错 let num = 10 /*: if * Swift中的if和OC中的if用法大致一致, 知识在细节上有一些细微的不同 不同点 * 1.OC中非0即真, 而Swift中没有这个概念, Swift中if的条件表达式必须是一个bool值 * Swift中提…
import UIKit /*: 常量变量 * 常量: let * 变量: var 完整格式: * 修饰符(let/var) 常量/变量名称: 数据类型 */ let number: Int var value: Double number = 10 value = 20 let n1: Int = 10 // 常量一旦初始化就不能再修改里面的值 //n1 = 20 /*: 类型推导 * 如果在定义一个常量或者变量的同时, 给这个常量或者变量进行了初始化, 那么数据类型可以不写 * 如果在定义的…
import UIKit /*: 数组 * 格式 var arr:[Int] = [数值1, 数值2, 数值3] * 不可变数组  let  == NSArray * 可变数组    var */ let arr = [10, 11, 12] // 开发中用这种 let arr2: [Int] = [10, 11, 12] let arr3: Array<Int> = [10, 11, 12] // 注意: 如果向先定义在初始化, 那么就必须在定义的时候指定数据类型 var arr4:[Int…
//: Playground - noun: a place where people can play import UIKit /*: 字典 * 和OC的区别 * 1. {} 替换为 [] * 2. 去掉所有@ * 可变字典   var * 不可变字典 let */ var dict = ["name": "lnj", "age": 30] let dict2: [String : NSObject] = ["name":…
swift 3.0 字符串的介绍 OC和Swift中字符串的区别 在OC中字符串类型时NSString,在Swift中字符串类型是String OC中字符串@"",Swift中字符串"" 使用 String 的原因 String 是一个结构体,性能更高 NSString 是一个 OC 对象,性能略差 String 支持直接遍历 Swift 提供了 String 和 NSString 之间的无缝转换 字符串的使用 遍历字符串 // 字符串遍历 var str = &q…
内容包括:01变量&常量 02分支 03循环 04字符串 05数组 06字典 07函数 01变量&常量 //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground" /*: let 常量 var 变量 * 自动`推导`,能够根据右边的代码,推导出变量的准确类型 */ let x = 100 // 常量一旦设置数值,就不能再次修改 //x =…
前言: 1.此文中的语法会根据Swift的升级变动而更新. 2.如果需要请移步 -> swift2.2 语法(中).swift 2.2语法(下) Swift与OC中常见的区别 导入框架 OC: #import <UIKit> #import "AFNetWorking.h" Swift: import UIKit 定义标识符 OC: int i = 0; Swift: // 不可变标识符 let i = 0 或 let i : Int = 0 // 可变标识符 var…
Swift 3.0 版本去掉了沿用已久的 C 风格循环语法, 又是向现代开发语言的一次迈进, 咱们就来看看没了 C 风格循环我们还有什么选择 C 风格循环 关于 C 风格循环, 不我们过多介绍了, 就是类似这样的语句: let numberList = [, , , , ] ; i < numberList.count; i++ { } 如今这样的语法在新版本的 Swift 中即将成为历史了, C 风格的循环语法可能是大家最熟悉的, 大家会不会觉得突然去掉这个语法有些不适应呢? 咱们再来看看 S…
概述 从写第一篇Swift文章的时候到现在Swift已经从1.2发展到了今天的3.0,这期间由于Swift目前还在发展阶段并不能向下兼容,因此第一篇文章中的部分代码在当前的Xcode环境中已经无法运行.在WWDC16上Apple公布了Swift3.0,从中可以看出Apple对Swift的重视,以及Swift开源半年以来的进步.尽管对于开发人员来说Swift3.0的变化会令你的程序几乎处处报错,但是试想一下如果Apple没有追求极致的精神又怎么会做出如此多的更改.今天的文章将重点介绍:What's…
一.编译器和语法变化 函数或方法参数 调用函数或方法时从第一个参数开始就必须指定参数名 在Swift的历史版本中出现过在调用函数时不需要指定任何函数参数(或者从第二个参数开始指定参数名),在调用方法时则必须从第二个参数开始必须指定参数名等多种情况,而在Swift3.0中不管是函数还是方法都必须从第一个参数开始必须指定参数名(当然可以使用"_"明确指出调用时省略参数). // 从第一个参数就必须指定参数名,除非使用"_"明确指出省略参数 func sum(num1:I…
前言: 1.此文中的语法会根据Swift的升级变动而更新. 2.如果需要请移步 -> swift2.2 语法(上).swift 2.2语法(中) 类的析构函数 swift会自动释放不需要的实例来达到释放资源的目的 swift通过自动引用计数(ARC)管理内存 当引用计数为0的时候,系统会自动调用析构函数(析构函数无法手动调用) 通常在析构函数内释放一些资源(移除通知.释放不需要对象等) 格式: deinit { 需要执行的操作 } 这个比较好理解,就直接上代码了 class person: NS…
前言: 1.此文中的语法会根据Swift的升级变动而更新. 2.如果需要请移步 -> swift2.2 语法(上).swift 2.2语法(下) 函数 和C语言一样,swift也有函数,性质和我们熟悉的Objective-C的方法相当 格式: func 函数名(参数列表) -> 返回值类型 { 代码块 // 如果设置了返回值类型,就需要返回相应的返回值 return 返回值 } func是swift内的关键字,参数列表内多个参数之间用 "," 隔开,可以没有参数 "…
由于Swift 3.0 出了太多令人兴奋的新特性,人们很容易忽略 Objective-C中的小改动.或许你会觉得苹果提及Objective-C 很可能是为了提高和Swift互操作性(译者注:互操作性主要是指OC代码与Swift代码相互转换),不过苹果仍然很欢迎开发者用Objective-C来完成工作. 在这篇文章中,我们就来看看Objective-C中新添加的类属性.Objective-C 类属性摘自 Xcode 8正式版中的说明:Objective-C now supports class p…
转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心. 今年6月,一年一度的WWDC大会如期而至,在大会上Apple发布了Swift 2.0,引入了很多新的特性,以帮助开发者能更快,更简单的构建应用.我在这里也说道说道Swift 2.0中值得大家注意的新特性. guard语句 guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么.但与if语句不同的是,guard语句只会有一个代码块,不像if语句可以if…
写在前面 首先和大家分享一下学习新语法的技巧:用Xcode8打开自己的Swift2.3的项目,选择Edit->Convert->To Current Swift Syntax- 让Xcode帮我们把Swift2.3的代码转换为Swift3.0. 手动调出Xcode自动转换Swift2.3 到 Swift3.0 弹出语言版本选择界面,选择Covert to Swift3,Next: AAB5FC3D-3EF2-43D5-9328-C00E33B3109D.png 进入选择模块界面: 选择模块界面…
Swift3.0将会给我们带来哪些改变: 1. 稳定二进制接口(ABI) ABI是什么呢?API大家都知道是应用程序接口 API只是提供函数签名 而ABI是系统和语言层面的 如果ABI稳定 意味着以后Swift版本更新升级 我们不需要再修改老版本 Swift 语言编译的库了如果你曾经从Swift 1.x 升级到 Swift 2.x 将会体会颇深 2. 弹性/韧性 解决易碎二进制接口问题 Fragile binary interface problem是面向对象编程语言的通病 如果在程序中引入了外…
Swift 2.0新特性     转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度的WWDC大会如期而至,在大会上Apple发布了Swift 2.0,引入了很多新的特性,以帮助开发者能更快,更简单的构建应用.我在这里也说道说道Swift 2.0中值得大家注意的新特性. guard语句 guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么.但与i…
转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度的WWDC大会如期而至,在大会上Apple发布了Swift 2.0,引入了很多新的特性,以帮助开发者能更快,更简单的构建应用.我在这里也说道说道Swift 2.0中值得大家注意的新特性. guard语句 guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么.但与if语句不同的是,guard语句只会…
 元组Tuple   我们现在使用的C#语法已经可以满足日常的开发需求,但C#语法还在进行版本的更新,在创造更多更优秀的语义来让我们使用.这里介绍一下C#5.0里的提供的语法——元组. 在C#中定义Tuple对象,转到定义查看,我们会看到如下代码 #region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 // C:\Program Files (x86)\Reference As…
C#语法——泛型的多种应用   本篇文章主要介绍泛型的应用. 泛型是.NET Framework 2.0 版类库就已经提供的语法,主要用于提高代码的可重用性.类型安全性和效率. 泛型的定义 下面定义了一个普通类和一个泛型类,我们可以明确看到泛型类和普通类最大的区别就是多了一个<T>. 所以,这个<T>就标记了,这个类是泛型类.其中这个T,也可以写成A,B,C,D或其他字符. 1 2 3 4 public class Generic {     public String Name;…
iOS & Swift新旧版本更替, 在Apple WWDC大会开始之际, 也迎来了iOS 10.0, Swift 3.0 测试版, 到目前为止, 已经是测试版2.0, 每次更新都带来了新的语法变化, Swift更加简洁, 但是Xcode 越发不给力, 输出变本加厉, NSLog 一如既往的不好使, 但是,好消息是, 无论语法怎么改变, 在已有项目的基础上, Xcode更新到8.0 测试版 2.0, 您只需按照系统提示的红空心原点提示, 一个一个的替换, 就可以完美的过度到iOS 10.0,  …
基础篇 注: 下文中所提及的类和类型为Class, Enum和Struct Swift中的访问级别有以下五种: open: 公开权限, 最高的权限, 可以被其他模块访问, 继承及复写. public: 公有访问权限,类或者类的公有属性或者公有方法可以从文件或者模块的任何地方进行访问.那么什么样才能成为一个模块呢?一个App就是一个模块,一个第三方API, 第三等方框架等都是一个完整的模块,这些模块如果要对外留有访问的属性或者方法,就应该使用public的访问权限.public的权限在Swift…
随着刚刚结束的 WWDC 2015 苹果发布了一系列更新,这其中就包括了令人振奋的 Swift 2.0. 这是对之前语言特性的一次大幅的更新,加入了很多实用和方便的元素,下面我们就一起来看看这次更新都包括了什么. 将 println 函数统一为 print 现在我们在代码中输入 println("xxx") 这样的调用时,编译器就会报错: 都已经变成通用的 print 方式了: print("xxx") 语言的结构性更强 比如在 Swift 1.2 中,我们要判断某…
阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和finally代码块内的Await nameof表达式 扩展方法 总结 自动属性默认初始化 使用方法: public string Name { get; set; } = "hello world"; 为了便于理解使用2.0语法展示,编译器生成代码如下: public class Custom…
Swift 3.0 相对于 2.x 有很大变化.特别是因为命名习惯的改变,导致许多 Api 都发生了变化.总的趋势是让表示更简洁. 对旧的代码升级,大部分可以根据提示来进行更正.但也有的需要手动修改. 比如: Swift 2.x: UIColor->blueColor() Swift 3.0: UIColor->blue Swift 2.x: if () where () Swift 3.0: if (), () Swift 2.x: p.p1 { margin: 0.0px 0.0px 0.…