extension Int {
var kg : Int {return self * 1000 }
var ton : Int {return self * 1000000}
}
var aChick = 2.kg
var aElephant = 8.ton
print("aClick is \(aChick)g")
print("aElephant is \(aElephant)g")
struct Student {
var name : String
var id : String
var age : Int
init(){
name = ""
id = ""
age = 0
}
}
extension Student {
init(name : String, id : String, age : Int){
self.name = name
self.id = id
self.age = age
}
}
let theStudent = Student(name: "Jack", id: "37060115", age: 18)
print(theStudent)
struct Student {
var name : String
var id : String
var age : Int
init(){
name = ""
id = ""
age = 0
}
}
extension Student {
init(name : String, id : String, age : Int){
self.name = name
self.id = id
self.age = age
}
func description(){
print("\(name)'s age is \(age) and id is \(id)")
}
}
let theStudent = Student(name: "Jack", id: "37060115", age: 18)
theStudent.description()
struct Student {
var name : String
var id : String
var age : Int
init(){
name = ""
id = ""
age = 0
}
}
extension Student {
init(name : String, id : String, age : Int){
self.name = name
self.id = id
self.age = age
}
}
struct Class {
var students = [Student]()
}
extension Class {
subscript(Index : Int) -> String{
return students[Index].name
}
}
var theClass = Class()
theClass.students.append(Student(name: "Sam", id: "0", age: 16))
theClass.students.append(Student(name: "Tom", id: "1", age: 18))
theClass.students.append(Student(name: "Jeff", id: "2", age: 19))
let oneStudentName = theClass[0]
print(oneStudentName)
class Founder {
var surname: String
var lastname: String
init() {
surname = ""
lastname = ""
}
}
extension Founder {
var fullname: String { return lastname + " " + surname }
}
let founderOfApple = Founder()
founderOfApple.surname = "Jobs"
founderOfApple.lastname = "Steve"
print(founderOfApple.fullname)
class Founder {
var surname: String
var lastname: String
init() {
surname = ""
lastname = ""
}
}
extension Founder {
var fullname: String { return lastname + " " + surname }
convenience init(surname: String, lastname: String) {
self.init()
self.surname = surname
self.lastname = lastname
}
}
let founderOfApple = Founder(surname: "Jobs", lastname: "Steve")
print(founderOfApple.fullname)
class Founder {
var surname: String
var lastname: String
init() {
surname = ""
lastname = ""
}
}
extension Founder {
var fullname: String { return lastname + " " + surname }
convenience init(surname: String, lastname: String) {
self.init()
self.surname = surname
self.lastname = lastname
}
func description() {
print("Founder is \(fullname)")
}
}
let founderOfApple = Founder(surname: "Jobs", lastname: "Steve")
founderOfApple.description()
class Founder {
var surname: String
var lastname: String
init() {
surname = ""
lastname = ""
}
}
extension Founder {
var fullname: String { return lastname + " " + surname }
convenience init(surname: String, lastname: String) {
self.init()
self.surname = surname
self.lastname = lastname
}
func description() {
print("Founder is \(fullname)")
}
}
struct ManagementTeam {
var managers = [Founder]()
}
extension ManagementTeam {
subscript(Index: Int) -> String {
return managers[Index].fullname
}
}
let founder1 = Founder(surname: "Jobs", lastname: "Steve")
let founder2 = Founder(surname: "Wotzniak", lastname: "Stephen")
let founder3 = Founder(surname: "Wayne", lastname: "Ron")
var appleManagementTeam = ManagementTeam()
appleManagementTeam.managers.append(founder1)
appleManagementTeam.managers.append(founder2)
appleManagementTeam.managers.append(founder3)
print("Apple Corporation's management team consists of:")
for manager in appleManagementTeam.managers {
print(manager.fullname)
}
protocol Ownership {
var owner: String{ get }
var registerDate: String{ get }
var serialNo: String{ get }
func updateOwnership(newOwner: String, registerDate: String)
}
protocol Vehicle {
associatedtype WeightType
var license: String{ get }
var producer: String{ get }
var speed: Int{ get }
var hour: Int{ get }
var distance: Int{ get set }
var weight: WeightType { get }
func movingVehicle(addedhour: Int)
}
class Car : Ownership, Vehicle {
var owner: String
var registerDate: String
var serialNo: String
var license: String
var producer: String
var speed: Int
var hour: Int
var weight: Double
var distance: Int {
get {
return speed * hour
}
set {
hour = distance / speed
}
}
func updateOwnership(newOwner: String, registerDate: String) {
owner = newOwner
self.registerDate = registerDate
}
func movingVehicle(addedhour: Int) {
hour += addedhour
}
init() {
owner = ""
registerDate = ""
serialNo = ""
license = ""
producer = ""
speed = 0
hour = 0
weight = 0.0
}
init(owner: String, registerDate: String, serialNo: String, license: String, producer: String, speed: Int, hour: Int, weight: Double) {
self.owner = owner
self.registerDate = registerDate
self.serialNo = serialNo
self.license = license
self.producer = producer
self.speed = speed
self.hour = hour
self.weight = weight
}
}
let myCar = Car(owner: "Tom", registerDate: "2023-9-18", serialNo: "102008930", license: "BJ0515G", producer: "BMW", speed: 150, hour: 0, weight: 3.5)
myCar.movingVehicle(addedhour: 800)
myCar.updateOwnership(newOwner: "Sam", registerDate: "10000")
print("owner: \(myCar.owner)\nregisterDate: \(myCar.registerDate)\nserialNo: \(myCar.serialNo)\nlicense: \(myCar.license)\nproducer: \(myCar.producer)\nspeed: \(myCar.speed)\nhour: \(myCar.hour)\nweight: \(myCar.weight)")
protocol Ownership {
func updateOwnership(newOwner: String, registerDate: String)
}
protocol Vehicle {
func movingVehicle(hour: Int)
}
class Car {
var owner: String
var registerDate: String
var serialNo: String
var license: String
var producer: String
var speed: Int
var hour: Int
var weight: Double
var distance: Int {
get {
return speed * hour
}
set {
hour = distance / speed
}
}
init(owner: String, registerDate: String, serialNo: String, license: String, producer: String, speed: Int, hour: Int, weight: Double) {
self.owner = owner
self.registerDate = registerDate
self.serialNo = serialNo
self.license = license
self.producer = producer
self.speed = speed
self.hour = hour
self.weight = weight
}
}
extension Car: Ownership, Vehicle {
func updateOwnership(newOwner: String, registerDate: String) {
owner = newOwner
self.registerDate = registerDate
}
func movingVehicle(hour: Int) {
self.hour += hour
}
}
let myCar = Car(owner: "Tom", registerDate: "2023-9-18", serialNo: "102008930", license: "BJ0515G", producer: "BMW", speed: 150, hour: 0, weight: 3.5)
myCar.movingVehicle(hour: 800)
myCar.updateOwnership(newOwner: "Sam", registerDate: "10000")
print("distance: \(myCar.distance)")
print("owner: \(myCar.owner)\nregisterDate: \(myCar.registerDate)\nserialNo: \(myCar.serialNo)\nlicense: \(myCar.license)\nproducer: \(myCar.producer)\nspeed: \(myCar.speed)\nhour: \(myCar.hour)\nweight: \(myCar.weight)")
protocol ConsumerGoods{
var price: Double { get }
var type: String { get }
var produceDate: String { get }
func consumerGoodsInfo()
}
protocol ElectricAppliance{
var power: Int { get }
var energyConsumptionLevel: Int { get }
var use: String { get }
func electricApplianceInfo()
}
protocol DomesticAppliance: ConsumerGoods, ElectricAppliance {
var discount: Double { get }
var location: String { get }
func domesticApplianceInfo()
}
class AirConditioner: DomesticAppliance {
var price: Double
var type: String
var produceDate: String
var power: Int
var energyConsumptionLevel: Int
var use: String
var discount: Double
var location: String
func consumerGoodsInfo() {
print("Price:\(price), Type:\(type), Produce Date:\(produceDate)")
}
func electricApplianceInfo() {
print("Power:\(power), energy consumption level:\(energyConsumptionLevel), use:\(use)")
}
func domesticApplianceInfo() {
print("Discount:\(discount), location:\(location)")
}
init(price: Double, type: String, produceDate: String, power: Int, energyConsumptionLevel: Int, use: String, discount: Double, location: String) {
self.price = price
self.type = type
self.produceDate = produceDate
self.power = power
self.energyConsumptionLevel = energyConsumptionLevel
self.use = use
self.discount = discount
self.location = location
}
}