首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Swift3.0 - 探究Self的用途

    "酷走天涯" print(student1.name) print(student2.name) 运行: XUJIE 酷走天涯 分析: 由于NSCopying 协议里面的方法copy 返回的值为...指明是Student 类型 过程有点繁琐 第二种方法 1.创建一个一个required 修饰的初始化方法 2.自定义一个copy方法 示例代码 class Student{ var...,然后通过init(name:self.name) 初始化一个对象 ,初始化的对象为Self 类型 思考:初始化为什么要使用required 修饰的的初始化 参考元类型 设计规范: 像拷贝这种行为..., 不是很多对象都具有的行为,我们应该把它设计成协议,让类去继承它 protocol Copy{ func copy() -> Self } 其实如果我们但从技术上实现, 下面的方式也可以的...copy() -> Student{ let result = Student(name: self.name) return result } 给多个对象扩展相同的方法

    41530

    Swift3.0 - 类和结构体的区别

    必须知道的 共同点 a.定义存储属性 b.定义函数 c.定义下标,使用下表访问自己的值 d.定义初始化设置自己的初始化状态 e.扩展自己的功能 f.实现协议提供某种特定的标准功能 不同点(...什么时候用结构体 1.该结构的主要目的是封装几个相对简单的数据值 2.如果你希望你的结构在传递的时候被赋值而不是引用 3.希望结构在传递的时候,内部的属性也被复制而不是引用 4.不需要继承属性或者方法...用性能说话 测试1: 循环创建类和结构体 a.执行1亿次类创建 // 定义类 class StudentC{ var name:String init( name:String) {...2.03975200653076 1.98246997594833 结论: 创建结构体要比创建对象速度快 测试2:创建1000_000 个对象或者结构体放在数组中,查看内存占用率 a.循环创建...for i in 0...1000_000{ let s = StudentC(name: "酷走天涯") students.append(s) } 运行结果: 内存占用61.8MB b.循环创建

    49110

    Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化

    Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化 一、引言       Apple与今年6月13日正式发布了Swift3.0的第一个预览版本,并且相应推出了Xcode8的第一个bate...首先,Swift3.0确实带来了很大改变,许多Swift中的结构体API都进行了更新,例如String,Array等,Swift3.0版本将许多类Objective-C风格的API都更换成了Swift风格的...Swift3.0中的字符串类型String在方法API上更加简洁,其中变动较大的是与下标相关的方法,列举如下: var string = "Hello-Swift" //获取某个下标后一个下标对应的字符...()] //swift3.0 var char2 = string[string.index(before: string.endIndex)] //通过范围获取字符串中的一个子串 Hello //swift2.2...: 12)) //在指定范围替换一个字符串 此时string = "Hi-Swift!

    76620

    python 流程、循环、异常、函数的高级用法(3.0)

    ("a 只有阈值的一半") else: print("a 小于阈值") 循环语句 for 遍历一个可迭代对象(暂时理解为list), 会影响相同作用域当中的变量 l = [1, 2, 3, 4,...获取索引值和值 l = [1, 2, 3, 4, 5, 6] for i, e in enumerate(l): print(f"index: {i}, value: {e}") while循环...一定要有逻辑判断语句来退出while循环 while 判断语句: 表达式 while True: 判断语句 表达式 跳出循环 break 停止当前循环 continue 跳过当前的执行逻辑..., 立即执行下一个循环语句单元; pass 跳过当前条件判断中的执行语句, 后续语句继续执行; Python的异常与处理 异常 程序遇到严重错误时, 会终止程序的运行并抛出异常 def my_sub(..., 造成不可预知的bug.

    62820

    【Python】字符串 str ② ( 字符串操作 | 查找字符串中子串的下标索引 - index 函数 | 字符串替换 - replace 函数 | 字符串分割 - split 函数 )

    一、查找字符串中子串的下标索引 - index 函数 调用 字符串类型变量的 str#index() 函数 , 可以 查找 字符串 中 子串 的 下标索引 ; 语法如下 : 字符串.index(字符串)...子串 替换为其它 字符串 ; 语法 : 字符串变量.replace(被替换的子字符串, 替换后的字符串) replace 函数 , 第一个参数是 字符串 中 被替换的子字符串 , 第二个参数 是 替换后的字符串...; 由于 字符串 是 不可修改的 , 因此 , 上述修改后 , 返回一个新的字符串 , 原来的字符串保持不变 ; 代码示例 : """ 字符串 str 代码示例 """ # 定义字符串 my_str...按照 某个子串 分割成若干个 子串 ; 语法 : 字符串变量.split(子字符串) 返回一个列表 , 列表中的元素就是分割后的子串 ; 被分割的子串 不会 出现在 新的 字符串 列表 中 ; 如 :...按照逗号分割 , 分割后逗号直接消失 ; 由于 字符串 是 不可修改的 , 因此 , 上述修改后 , 返回一个新的字符串 , 原来的字符串保持不变 ; 代码示例 : """ 字符串 str 代码示例

    43530

    Swift3.0带来的变化汇总系列二——集合类型中的变化

    Swift3.0带来的变化汇总系列二——集合类型中的变化     与字符串类似,Swift中集合的类型在3.0版本中也做了大量API上面的修改。...一、Array数组的更改     array数组中修改的API示例如下: //创建大量相同元素的数组 //创建有10个String类型元素的数组,并且每个元素都为字符串"Hello" //swift2.2...//swift2.2 //set1.maxElement() //swift3.0 set1.max() //获取集合中的最小值 //swift2.2 //set1.minElement() //swift3.0...的子集 返回ture //swift2.2 //set5.isSubsetOf(set7) //swift3.0 set5.isSubset(of: set7) //判断是否是某个集合的超集 set7是...set5的超集 返回ture //swift2.2 //set7.isSupersetOf(set5) //swift3.0 set7.isSuperset(of: set5) //判断是否是某个集合的真子集

    99610

    Swift 基础部分(建议掌握OC字符串知识的翻阅)

    更新说明:         Swift 目前已经发布到4.0版本了,以前写的这整个Swift学习系列的文章,有很多的不足之处,我会重新整理整个系列文章,也是相当于重新复习一遍Swift,后面系列文章的改动之处全都会做记号标注...首先,你懂Object-C的话,Swift最基本的一些概念性的东西就不需要你再去理解了,会为你的学习带来许多的方便! 第一大点,大家需要知道字符串的本质是一个结构体!...发挥一下你的想象力,再结合OC的知识,Swift 字符串相关的东西你就掌握了,就踏出了你学Swift的第一步!...init() } 这是swift项目中官方对BOOL类型的一个解释,大家可以看看! 说回我们的字符串吧!...第二大点就是字符串的操作: 一:字符串的大小写转换,和OC的一样就不在多说了 二:字符串的拼接:         这个和以前我们学的OC的不一样,在OC中,我们用的是StringWithFormant这个方法

    72190

    Swift3.0带来的变化汇总系列三——函数和闭包写法上的微调

    Swift3.0带来的变化汇总系列三——函数写法上的微调 一、函数方面     Swift3.0相比Swift2.2的版本在API上做了大量的修改,代码风格也更加统一。...在函数方面,Swift3.0中做的最大修改是修改了内部名称与外部名称的默认规则。    ...(1, param2: 2, param3: 3) Swift3.0中将这一规则修改为:如果开发者不设置函数中参数的外部名称,则全部参数都默认外部名称和内部名称相同,上面相同的代码,在Swift3.0的环境下是下面这样的...在函数方面,Swift3.0中做的另一项更改是关于inout参数的声明方式,修改了inout关键字的声明位置,Swift2.2与Swift3.0版本比如如下: //在函数内部修改参数变量的值 //swift2.2...Swift3.0版本中只对某些修饰符的位置做了修改。

    50320

    Swift3.0服务端开发(四) MySQL数据库的连接与操作

    在博客的开头呢,先来推荐一款Mac上比较好用又免费的MySQL可视化管理工具Sequel Pro。这款工具用的是相当的顺手呢,应用的图标如下所示: ?...点击左下方的加号来创建新的数据库表,下方就是我们创建的数据库表的具体步骤以及具体的参数配置。如下所示: ? 创建完user表后,我们需要往表里边添加一些测试字段,下方就是我们添加的一些字段。...MySQLConnnet类对外是以单例的形式存在的,不过对外暴漏的不是MySQLConnnet类的对象,而是MySQL类的对象。 ?...接下来我们就要使用Swift代码来对User表进行增删改查操作了。...在取出数据后,将其转换成相应的字典,然后将存有查询结果的字典存入到responseJson中,然后将responseJson转换为json字符串返回给用户即可。具体做法如下所示。 ?

    1.7K80
    领券