2018-07-27

函数使用的注意事项:
1.内部参数和外部参数
内部参数:默认情况下所有的参数都是内部参数,默认情况从第二个参数开始既是内部参数也是外部参数。若希望第一个参数也是外部参数,可以在标识符前给该参数添加一个别名
func sum(num1 : Int,num2 : Int) -> Int {
return num1+num2
}
sum( 20, num2 : 20)
func sum(num1 num1 : Int,num2 : Int,num3 : Int) -> Int{
return num1 + num2 + num3
}
sum(num1 : 20, num2 : 30 ,num3 : 30)
2.默认参数
func makeCoffee(coffeeName : String = "雀巢") -> String {
return "制作了一杯(coffeeName)咖啡"

makeCoffee("拿铁")
makeCoffee()
3.可变参数
func sum(num : Int...) -> Int {
var result =0
for n in num {
result += n
}
return result
}
sum(18,20,30,40,50,50)
4.指针类型
inout让值类型以引用形式传递
func swapNum(inout m : Int , inout n : Int){
let temp = m
m = n
n = temp
}
swapNum(&m , n : &n)
print("m:(m),n:(n)")
5.函数的嵌套使用


override:重写,如果写的某一个方法是对父类的方法进行的重写,那么必须在该方法前加上override
class 类名: SuperClass {
//定义属性和方法
}
定义的类可以没有父类,通常情况下定义类时,继承自NSObject
类的属性 :
存储属性:存储实例的常量和变量
var name : String? = nil (定义成可选类型)
计算属性:通过某种方式计算出来的属性
var average : Double {
return (a+b) * 0.5
}
类属性:与整个类自身相关的属性
static var c : Int = 0
自定义类的构造函数
继承自NSObject的类 重写父类的构造函数
override init( ) {
//在构造函数中,如果没有明确super.init( ),系统会帮助调用super.init( )
print("123")
}
init ( name : String, age : Int)
{
self.name=name
self. age=age
}
init ( dict : [String : AnyObject] ) {
let tempName = dict ["name"]
//tempName是一个AnyObject?,转成String?
name = tempName as? String
if let tempAge = dict["age"] as? Int {
age = tempAge
}
}
//as?最终转成的类型是一个可选类型
//as!最终转成的类型是一个确定的类型
init (dict : [String : AnyObject] ) {
super.init( ) //系统调用是在后面调用
setValuesForKeysWithDictionary(dict)
}
属性监听器
//属性即将改变时进行监听
willSet {
print(newValue) //改变之后的项
}
//属性已经改变时进行监听
didSet {
print(oldValue) //改变之前的项
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 看到武志红老师订阅号推送的《你过不好,真的不是因为穷》这个题目时,下意识会反抗,反抗的那句话是:没钱也不行吧,没钱...
    长呀长阅读 507评论 5 2
  • 明明近在咫尺, 你却遥望远方, 遥想那真心所指的方向; 明明相隔茫茫, 梦却重播回放, 告知那魂牵梦绕的远方; 那...
    苿兰阅读 139评论 1 5
  • 金钱至上伦理危,心智迷乱戏狐媚。 若不亮出擒魔剑,灰飞烟灭红轮坠。 ...
    老槐树阅读 366评论 0 1
  • 致自己的第三封信 今天是特种兵第14天,时间过得好快,每天签到都好紧张,课程也比较紧,很怕自己拉团队后腿,同时我也...
    婷婷仙女阅读 276评论 0 0