Advertisement
eranseg

Extensions

Mar 22nd, 2020
654
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.49 KB | None | 0 0
  1. // Lesson 3 - 22.3.20
  2.  
  3. // Calculating and printing the distance between two points using the Int extension
  4.  
  5. typealias Point = (x: Int, y: Int)
  6.  
  7. extension Double {
  8.     func calcDist(p1 : Point, p2 : Point) {
  9.         let x = p2.x - p1.x
  10.         let y = p2.y - p1.y
  11.         print(Double(x * x + y * y).squareRoot())
  12.     }
  13. }
  14.  
  15. var myNum : Double = 5.3
  16. myNum.calcDist(p1: (3, 4), p2: (11, 10))
  17.  
  18. // Painting a tree using the String extension
  19.  
  20. extension String {
  21.     func printWithTree() {
  22.         let totalLen : Int = self.count + 5
  23.         var blankLen : Int = (totalLen - 1) / 2
  24.         var starLen : Int = 1
  25.         let numOfIterations = self.count % 2 == 0 || self.count < 2 ? self.count + 1 : self.count
  26.         var str : String = ""
  27.         for _ in 1...numOfIterations {
  28.             if blankLen > 0 {
  29.                 for _ in 1...blankLen + 1 {
  30.                     str.append(" ")
  31.                 }
  32.                 for _ in 1...starLen {
  33.                     str.append("*")
  34.                 }
  35.                 str.append("\n")
  36.                 blankLen -= 1
  37.                 starLen += 2
  38.             }
  39.         }
  40.         str.append(" * \(self) *\n")
  41.         for _ in 0...totalLen {
  42.             str.append("*")
  43.         }
  44.         str.append("\n")
  45.         for _ in 1...3 {
  46.             for _ in 1...(totalLen - 1) / 2 {
  47.                 str.append(" ")
  48.             }
  49.             str.append("**\n")
  50.         }
  51.         print(str)
  52.     }
  53. }
  54.  
  55. var name: String = "Ydsdfsd"
  56. name.printWithTree()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement