Swift

Programming Fundamentals · Wikibooks

0%

Contents

    Text

    Size
    100%
    Theme
    Typeface
    Line length
    Spacing

    From Wikibooks, under CC BY-SA 4.0, as the source states it. This page at Wikibooks.

    Swift

    Objects

     // This class converts temperature between Celsius and Fahrenheit.
     // It may be used by assigning a value to either Celsius or Fahrenheit 
     // and then retrieving the other value, or by calling the ToCelsius or
     // ToFahrenheit methods directly.
     
     class Temperature {
         var _celsius:Double = 0
         var _fahrenheit:Double = 32
     
         init(celsius:Double?=nil, fahrenheit:Double?=nil) {
             if celsius != nil {
                 self.celsius = celsius!
             }
             
             if fahrenheit != nil {
                 self.fahrenheit = fahrenheit!
             }
         }
     
         var celsius: Double {
             get {
                 return self._celsius
             }
             set {
                 self._celsius = newValue
                 self._fahrenheit = toFahrenheit(celsius:self._celsius)
             }
         }
     
         var fahrenheit: Double {
             get {
                 return self._fahrenheit
             }
             set {
                 self._fahrenheit = newValue
                 self._celsius = toCelsius(fahrenheit:self._fahrenheit)
             }
         }
         
         func getCelsius() -> Double {
             return self.celsius
         }
         
         func setCelsius(celsius:Double) {
             self.celsius = celsius
             self.fahrenheit = toFahrenheit(celsius:celsius)
         }
     
         func getFahrenheit() -> Double {
             return self.fahrenheit
         }
         
         func setFahrenheit(fahrenheit:Double) {
             self.fahrenheit = fahrenheit
             self.celsius = toCelsius(fahrenheit:fahrenheit)
         }
     
         func toCelsius(fahrenheit:Double) -> Double {
             return (fahrenheit - 32) * 5 / 9
         }
         
         func toFahrenheit(celsius:Double) -> Double {
             return celsius * 9 / 5 + 32
         }
     }
     
     // This program creates instances of the Temperature class to convert Celsius 
     // and Fahrenheit temperatures.
     //
     // References:
     //     https://www.mathsisfun.com/temperature-conversion.html
     //     https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html
     
     func main() {
         let temp1 =  Temperature(celsius:0);
         print("temp1.celsius = " + String(temp1.celsius));
         print("temp1.fahrenheit = " + String(temp1.fahrenheit));
         print("");
     
         temp1.celsius = 100;
         print("temp1.celsius = " + String(temp1.celsius));
         print("temp1.fahrenheit = " + String(temp1.fahrenheit));
         print("");
         
         let temp2 = Temperature(fahrenheit:0);
         print("temp2.fahrenheit = " + String(temp2.fahrenheit));
         print("temp2.celsius = " + String(temp2.celsius));
         print("");
     
         temp2.fahrenheit = 100;
         print("temp2.fahrenheit = " + String(temp2.fahrenheit));
         print("temp2.celsius = " + String(temp2.celsius));
     }
     
     main()
    

    Output

    temp1.celsius = 0.0
    temp1.fahrenheit = 32.0
    
    temp1.celsius = 100.0
    temp1.fahrenheit = 212.0
    
    temp2.fahrenheit = 0.0
    temp2.celsius = -17.7777777777778
    
    temp2.fahrenheit = 100.0
    temp2.celsius = 37.7777777777778
    

    References