struct mit content Clusure

This commit is contained in:
Ingo Rohlf 2025-10-20 15:51:34 +02:00
parent 96cc34d156
commit 6edf869fe8
4 changed files with 17 additions and 11 deletions

BIN
.DS_Store vendored

Binary file not shown.

View file

@ -25,6 +25,7 @@ struct Train: Vehicle {
var name: String var name: String
var color = "white" var color = "white"
var delay = 0 // nicht im protocol var delay = 0 // nicht im protocol
func delayed(minutes: Int) -> Train { func delayed(minutes: Int) -> Train {
var train = self var train = self
train.delay = minutes train.delay = minutes
@ -34,6 +35,7 @@ struct Train: Vehicle {
let makeSomeNoise = { (noise: String) -> String in let makeSomeNoise = { (noise: String) -> String in
noise.uppercased() noise.uppercased()
} }
var content: () -> Vehicle
} }
struct ICE: Vehicle { struct ICE: Vehicle {
@ -64,19 +66,23 @@ struct Bike: Vehicle, CustomStringConvertible {
// } // }
} }
} }
var bike = Bike.trek
let train = Train(name: "RadZug", content: { Bike.trek })
#Playground { #Playground {
// var greeting = "Hallo Playground" // var greeting = "Hallo Playground"
var bike = Bike.trek
var train = Train(name:"ICE") // var train = Train(name:"ICE")
// bike.description // bike.description
// bike.description = "Mein Rad" // bike.description = "Mein Rad"
// bike.description // bike.description
train // train
train.delayed(minutes: 23) // train.delayed(minutes: 23)
BikeGarage().park(vehicle: bike) // BikeGarage().park(vehicle: bike)
print( bike) // print( bike)
train.makeSomeNoise("huhu") // train.makeSomeNoise("huhu")
// write code here // // write code here
train.content().name
} }

View file

@ -14,8 +14,8 @@
filePath = "Playground.swift" filePath = "Playground.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "39" startingLineNumber = "40"
endingLineNumber = "39" endingLineNumber = "40"
landmarkName = "ICE" landmarkName = "ICE"
landmarkType = "14"> landmarkType = "14">
</BreakpointContent> </BreakpointContent>