会有报错提示
Command+C 和 Command+V 快捷键。老师应该是视频做了剪辑,他把敲代码过程中的那段剪掉了,这样就可以让我们这些观众节省时间。
呵呵呵
因为是透过 airCon 这个引用变量修改的
description在结构体外了 铁汁
这里不是指协议函数返回的值是false ,bool是一个结构体 在申明的时候
/// Creates an instance initialized to `false`.
就是false
好像的确是错了!!!
快来围观这个课程的官方代码仓,更有高中小牛将这个课程的代码全部修改支持Swift4了哦:)
不行啊 老哥 你tieable里面的计算属性要用Record的数据啊
var sex : String?
重载运算符就是一个函数,作用域就看你定义的函数的访问域了(private,fileprivate,public,
internal)这些
现在已被废弃
precedencegroup ComparativePrecedence{ //定义运算符优先级
associativity: right
higherThan: LogicalConjunctionPrecedence
}
infix operator ** : ComparativePrecedence
func **(x: Double, p:Double) -> Double{
return pow(x,p)
}
通过这种方式来声明一个运算符,并指定优先级组,优先级组中已经指定了结合性和优先级。
infix(prefix/postfix) operator operator name: precedence group
主要有Bitwise shift,Multiplication,Addition,Range formation,Casting,Nil coalescing,Comparison,Logical conjunction,Ternary,Assignment. 这些优先级组
举例:
infix operator **:AdditionPrecedence
以下是表格的部分截图
估计协议一般是为类做服务的 类比起结构体的用途更加需要协议 结构体:二维坐标,公式函数 类:人,动物
reduce是三大面向函数编程函数之一,其他两个是map(转换信息)和filer(过滤信息)
num.reduce函数中有两个参数(initialResult : Result , nextPartialResult : (Result , xxx) throws -> Result)
可以看到第一个参数是用来做初始值的,第二个参数是要求传入的是一个函数或闭包(其中的参数一个是Result即reduce里面的第一个参数,第二个值是你数组里面的值(xxx是指这个值的类型))
可以看出 这个reduce函数通过把你传入的初始值放进你传入的函数或闭包进行多次逻辑操作,返回的值是reduce里面的第一个参数。 有点像 let a = 0 ; a += 1 ; a进去跟1进行操作,结果重新赋值给a
假设有个数组[1,2,3,4] 你.reduce(0, { return $0+$1 }) 结果是 10 . 这里的$0是指闭包里面第一个参数, $1是第二个参数 , 这里进行的操作是 0+1->1(result) 1+2->3(result) 3+3->6(result) 6+4->10(result)进行了四次操作,因为数组里面有四个元素,他们要依次跟$0进行操作。
当然不止上面这种累加操作啦 你也可以做累减reduce(10 , {return $0-$1}) 结果是0
老师那种就是取出最大值,他把reduce里面的第一个参数变成num[0],不再是自己放个默认进去与数组进行操作
逻辑就是 num[0] 对比 num[0] num[0] 对比 num[1] num[0] 对比 num[2] 其中的对比如果左边比右边小,就把右边值赋给左边 相信不难实现吧 希望这个解释能看懂?
不是转化为km,是把km转化为标准单位m
漏了一个关键字,应该是这样:func topPrizable<T: protocol<Record, Prizable>>(list: [T]) -> T?
weak声明的指针其实也就是一个指针,强弱只在于是否会使引用计数加一。所以是可以的,只要满足使用weak的条件:是var类型的可选的对象即可。
因为你不能保证Parrot的子类没有实现任何指定构造函数,所以它不一定有init(name: String)
在Swift3 里面是这样改变的。
类似java的接口interface
感谢你的关注!
整个课程代码会更新至swift3。但由于现在第四季的课程还没有正式完结,还有一部分内容在制作中。待全部完结后,我会对github上的课程代码和目录会进行补全。现在github上已经有了已上线部分的课程代码,不过目录还没有添加。整个课程完结后,我也将开始进行这个课程示例代码针对swift3的修改工作。不过可能会另建repo。具体地址会在项目介绍和慕课网的相关地方进行通知。swift3修改比较大的地方,我也会在这个课程相应小节的评论区进行说明的。
再次感谢你的支持,加油!