Last active
September 28, 2017 03:51
-
-
Save khawajafarooq/0bbbfc7bcec748d9cdadeb9e1f904cd2 to your computer and use it in GitHub Desktop.
Underlying concept of mixed semantics in swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
struct Address { | |
let unitNumber: String | |
let buildingNumebr: String | |
} | |
struct Residance { | |
var numberOfRooms: Int | |
var address: Address | |
} | |
class User { | |
let name: String | |
var residance: Residance | |
init(name: String, unitNumber: String, buildingNumber: String, numberOfRooms: Int) { | |
self.name = name | |
let address = Address(unitNumber: unitNumber, buildingNumebr: buildingNumber) | |
self.residance = Residance(numberOfRooms: numberOfRooms, address: address) | |
} | |
} | |
let user = User(name: "Khawaja", unitNumber: "3A", buildingNumber: "209", numberOfRooms: 2) | |
user.residance.address.unitNumber = "3B" // compiler error | |
user.residance.address = Address(unitNumber: "3B", buildingNumebr: "209") // valid statement |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment