/*
方法是用来描述对象所具有的动作的能力
【1】定义方式和调用方式
【2】方法的参数名命名规则
【3】self属性
【4】mutating关键字 [struck中]
对于值拷贝类型的复合类型,这里主要是结构体和枚举两类。在其对象方法中是无法对对象属性进行修改的,为了能够进行修改操作,在定义前添加mutating关键字,就可以对对象属性进行修改了。
【5】类方法实现单例设计模式
*/
class Person {
var name:String?
func drink(){
print("\(self.name) 喝水", terminator: "");
}
func attack(target:NSString ,withRun:NSString){
print("\n\(target) 正在\(withRun)");
}
//类方法前面需要加一个class
class func schoolName() -> String {
return "哇哈哈";
}
}
struct Point {
var some:NSString?;
mutating func cry(someOne:NSString){
some = someOne;
print("\(some)");
}
}
class Tool {
var toolName = "";
struct ToolParams {
static var tool:Tool?;
}
class func shareTool() -> Tool {
if(ToolParams.tool == nil){
ToolParams.tool = Tool();
}
return ToolParams.tool!
}
}
//
let nana = Person();
nana.name = "娜娜";
nana.drink();
nana.attack("张三", withRun: "跑");
//
print(Person.schoolName());
//
var po = Point();
po.some = "1";
po.cry("2");