Function, Class
Click here to load reader
-
Upload
hirakawa-akira -
Category
Software
-
view
274 -
download
0
Transcript of Function, Class
![Page 1: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/1.jpg)
Function, ClassBy Akira Hirakawa
![Page 2: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/2.jpg)
Topics
• function
• class
![Page 3: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/3.jpg)
Function
// Chunks of Code func sayHello() { print("hello") }
![Page 4: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/4.jpg)
Function with parameters
func sayHello(name: String) { let greeting = "Hello, " + name + "!" print(greeting) } sayHello("Akira")
![Page 5: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/5.jpg)
Function with Multiple Parameters
func sayHello(name: String, from: String) { let greeting = "Hello, I'm \(name), from \(from)" print(greeting) } sayHello("Akira", from: "Japan")
![Page 6: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/6.jpg)
Function with return value
func sayHello(name: String) -> String { let greeting = "Hello, " + name + "!" return greeting } print(sayHello("Akira"))
![Page 7: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/7.jpg)
Function Parameter Names
func sayHello(name: String, from: String) { let greeting = "Hello, I'm \(name), from \(from)" print(greeting) } sayHello("Akira", from: “Japan")
• the first parameter omits external name
• second and subsequent parameters users local name as external name
![Page 8: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/8.jpg)
Specifying External Parameter Names
func sayHello(name localName: String, from: String) { let greeting = "Hello, I'm \(localName), from \(from)" print(greeting) } sayHello(name:"Akira", from: “Japan")
• write external param name before local param
![Page 9: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/9.jpg)
Omitting External Param Name
func sayHello(name: String, _ from: String) { let greeting = "Hello, I'm \(name), from \(from)" print(greeting) } sayHello("Akira", "Japan")
• write underscore before local name
![Page 10: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/10.jpg)
Default Parameter
func hello(name: String = "anonymous") { let greeting = "Hello, " + name + "!" print(greeting) } hello() hello("Singapore")
![Page 11: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/11.jpg)
Class
class SomeClass { }
blueprint of an object that contains information , behaviour
![Page 12: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/12.jpg)
Class can
• Define properties
• Define methods
![Page 13: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/13.jpg)
Properties, Methodsclass Person { var name: String var age: Int
// initialize init(name aName: String, age aAge: Int) { name = aName age = aAge } // instance method func walk() { } // class method class func hello() { } } Person(name: "Akira", age: 100).walk() Person.hello()
![Page 14: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/14.jpg)
Inheritance
class SomeClass { }
class SomeClass2: SomeClass { }
![Page 15: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/15.jpg)
Protocol
• to define a blueprint of methods, properties etc protocol GeekProtocol { func coding() -> Bool }
class SGGeek: GeekProtocol { func coding() -> Bool { print("coding coding coding") return true } }
![Page 16: Function, Class](https://reader038.fdocuments.net/reader038/viewer/2022100803/5a6676407f8b9ac5128b4825/html5/thumbnails/16.jpg)
thanks