We had written code as below, not able to understand what to do for class rectangle and square. Need expertise advice -
import Foundation
--Editable Code--
struct Size{
var height:Double
var width:Double
init(_ height:Double,_ width:Double) {
self.height = height;
self.width = width;
}
}
protocol Shape{
var area:Double {get}
var perimeter:Double {get}
}
class Rectangle: Shape{
var size:Size
init(_ height:Double,_ width:Double){
self.size=Size.init(height,width)
}
init(_ size:Size){
self.size=size
}
var area:Double {
return size.height*size.width
}
var perimeter:Double {
return 2*size.height+2*size.width
}
}
class Square: Rectangle{
init(_ height:Double){
super.init(Size.init(height,height))
}
override init(_ size:Size){
super.init(Size.init(size.height,size.height))
}
}
--End Editable Code---
let stdout = ProcessInfo.processInfo.environment["OUTPUT_PATH"]!
FileManager.default.createFile(atPath: stdout, contents: nil, attributes: nil)
let fileHandle = FileHandle(forWritingAtPath: stdout)!
guard let sqHeight = Double((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!)
else { fatalError("Bad input") }
guard let sqWidth = Double((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!)
else { fatalError("Bad input") }
guard let height = Double((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!)
else { fatalError("Bad input") }
guard let width = Double((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!)
else { fatalError("Bad input") }
var sqSize = Size(height:sqHeight,width:sqWidth)
var rectSize = Size(height:height,width:width)
var shape:Shape = Rectangle(size:rectSize)
fileHandle.write(String(shape.perimeter).data(using: .utf8)!)
fileHandle.write("\n".data(using: .utf8)!)
fileHandle.write(String(shape.area).data(using: .utf8)!)
fileHandle.write("\n".data(using: .utf8)!)
shape = Square(size:sqSize)
fileHandle.write(String(shape.perimeter).data(using: .utf8)!)
fileHandle.write("\n".data(using: .utf8)!)
fileHandle.write(String(shape.area).data(using: .utf8)!)
fileHandle.write("\n".data(using: .utf8)!)
Getting error as -
solution.swift:67:18: error: extraneous argument labels 'height:width:' in call
var sqSize = Size(height:sqHeight,width:sqWidth)
^~~~~~~~ ~~~~~~
solution.swift:68:21: error: extraneous argument labels 'height:width:' in call
var rectSize = Size(height:height,width:width)
^~~~~~~~ ~~~~~~