Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Foundation
- protocol HasSquare {
- func getSquare() -> Double
- }
- protocol HasPerimeter {
- func getPerimeter() -> Double
- }
- protocol DefaultShape: HasSquare, HasPerimeter { }
- class Triangle: HasPerimeter {
- public var a: Double?
- private var b: Double?
- private var c: Double?
- private var perimeter: Double?
- init() {}
- init(a: Double) {
- self.a = a
- self.b = a
- self.c = a
- self.perimeter = 3*a
- }
- init(a: Double, b: Double, c: Double) {
- self.a = a
- self.b = b
- self.c = c
- self.perimeter = a + b + c
- }
- func change(a: Double) {
- self.a = a
- if let b = self.b,
- let c = self.c {
- self.perimeter = a + b + c
- } else {
- self.perimeter = -1
- }
- }
- func change(b: Double) {
- self.b = b
- guard let a = self.a,
- let c = self.c else {
- self.perimeter = -1
- return
- }
- self.perimeter = a + b + c
- }
- func change(c: Double) {
- self.c = c
- self.perimeter = self.a! + self.b! + self.c! //так делать нельзя
- }
- func getPerimeter() -> Double {
- return perimeter ?? -1 //стандарное значение
- }
- }
- var myTriangle: Triangle = Triangle()
- myTriangle.change(a: 3)
- myTriangle.change(b: 4)
- myTriangle.change(c: 5)
- print(myTriangle.getPerimeter())
- class Circle: DefaultShape {
- var a: Double
- private let r:Double
- init(radius: Double) {
- self.r = radius
- self.a = 10
- }
- func getSquare() -> Double {
- return Double.pi * r * r
- }
- func getPerimeter() -> Double {
- return 2 * Double.pi * r
- }
- }
- var circle = Circle(radius: 5)
- class Rectangle: DefaultShape {
- private var a: Double
- private var b: Double
- init(_ a: Double, _ b: Double) {
- self.a = a
- self.b = b
- }
- func getSquare() -> Double {
- return a * b
- }
- func getPerimeter() -> Double {
- return 2 * (a + b)
- }
- }
- class Square: Rectangle {
- init(_ a: Double) {
- super.init(a, a)
- }
- }
- let pam: Any? = String(40)
- if let unwrappedPam = pam as? String {
- print(unwrappedPam)
- }
- let square: DefaultShape = Square(10)
- if let squareToo = square as? Rectangle {
- print(squareToo.getPerimeter())
- }
- print(square.getSquare())
- func reverse(string: String) -> String {
- return String(string.reversed())
- }
- //let myFunc: (_ string: String) -> String
- class PairDouble {
- var a: Double
- var b: Double
- init(a: Double, b: Double) {
- self.a = a
- self.b = b
- }
- }
- func reverse(pair: PairDouble) {
- let temp = pair.a
- pair.a = pair.b
- pair.b = temp
- }
- var myPair = PairDouble(a: 1, b: 2)
- reverse(pair: myPair)
- print("\(myPair.a), \(myPair.b)")
- func getPiInCompletion (a _: Int, completion: (_ pi: Double, _ cosPi: Double) -> ()) {
- let pi = Double.pi
- let cosPi = cos(pi)
- completion(pi, cosPi)
- }
- getPiInCompletion(a: 10) { pi, _ in
- print("pi * pi = \(pi * pi)")
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement