Update of exercises

master
Thomas Smits 2023-05-25 17:49:42 +02:00
parent fe2c1c6eb6
commit 58bc23516c
41 changed files with 82 additions and 41 deletions

View File

@ -1,6 +1,7 @@
# Lösung: Bedingte Zuweisung # Lösung: Bedingte Zuweisung
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
a = nil a = nil
a ||= 'leer' a ||= 'leer'
``` ```

View File

@ -1,6 +1,7 @@
# Lösung: Case # Lösung: Case
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
```ruby ```ruby
note = 3 note = 3
text = case note text = case note

View File

@ -1,6 +1,7 @@
# Lösung: String-Formatierung # Lösung: String-Formatierung
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
```ruby ```ruby
name = "Peter" name = "Peter"
gewicht = 90 gewicht = 90

View File

@ -1,6 +1,7 @@
# Lösung: Parallele Zuweisung # Lösung: Parallele Zuweisung
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
```ruby ```ruby
def swap(a, b) def swap(a, b)
[ b, a ] [ b, a ]

View File

@ -1,6 +1,7 @@
# Lösung: Ranges # Lösung: Ranges
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
```ruby ```ruby
(1..20).each { |e| puts e } (1..20).each { |e| puts e }
``` ```

View File

@ -1,6 +1,7 @@
# Lösung: Splat # Lösung: Splat
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
```ruby ```ruby
ort = [ 49.468408, 8.482504, \ ort = [ 49.468408, 8.482504, \
'Hochschule Mannheim', \ 'Hochschule Mannheim', \

View File

@ -1,6 +1,7 @@
# Lösung: Symbole # Lösung: Symbole
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
```ruby ```ruby
def ansage(ursache) def ansage(ursache)

View File

@ -1,6 +1,7 @@
# Lösung: Zugriffsmethoden # Lösung: Zugriffsmethoden
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
```ruby ```ruby
class Professor class Professor
attr_reader :name attr_reader :name

View File

@ -1,6 +1,7 @@
# Lösung: Klasse deklarieren # Lösung: Klasse deklarieren
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
class Ticket class Ticket
attr_reader :spiel attr_reader :spiel

View File

@ -1,6 +1,7 @@
# Lösung: Default Parameter # Lösung: Default Parameter
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def produkt(a, b, c = 1, d = 1) def produkt(a, b, c = 1, d = 1)
a * b * c * d a * b * c * d
end end

View File

@ -1,6 +1,7 @@
# Lösung: Vererbung # Lösung: Vererbung
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
class Mensch class Mensch
attr_reader :name, :alte attr_reader :name, :alte

View File

@ -1,6 +1,7 @@
# Lösung: Keyword-Parameter # Lösung: Keyword-Parameter
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def greet(vorname:, nachname:) def greet(vorname:, nachname:)
puts "Hello #{vorname} #{nachname}" puts "Hello #{vorname} #{nachname}"
end end

View File

@ -1,6 +1,7 @@
# Lösung: Mixin benutzen # Lösung: Mixin benutzen
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
class Squares class Squares
include Enumerable include Enumerable

View File

@ -1,6 +1,7 @@
# Lösung: Modul schreiben # Lösung: Modul schreiben
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
module Chemie module Chemie
N_a = 6.02214179E23 N_a = 6.02214179E23
M_v = 22.413996 M_v = 22.413996

View File

@ -1,6 +1,7 @@
# Lösung: Monkey Patch # Lösung: Monkey Patch
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
class String class String
def to_leet def to_leet
self.tr('aeiou', '43107') self.tr('aeiou', '43107')

View File

@ -1,6 +1,7 @@
# Lösung: Geschachtelte Methoden # Lösung: Geschachtelte Methoden
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
class Bomb class Bomb
def self.activate def self.activate
def explode def explode

View File

@ -1,6 +1,7 @@
# Lösung: Vararg-Methoden # Lösung: Vararg-Methoden
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def produkt(*p) def produkt(*p)
p.reduce { |s, e| s *= e } p.reduce { |s, e| s *= e }
end end

View File

@ -1,6 +1,7 @@
# Lösung: Arrays # Lösung: Arrays
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
stapel = [] stapel = []
for farbe in %w{P X H K} for farbe in %w{P X H K}

View File

@ -1,6 +1,7 @@
# Lösung: Callback mit Block # Lösung: Callback mit Block
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def rechner(a, b) def rechner(a, b)
ergebnis = yield a, b ergebnis = yield a, b
ergebnis * 2 ergebnis * 2

View File

@ -1,6 +1,7 @@
# Lösung: Callback mit Proc # Lösung: Callback mit Proc
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def rechner(a, b, lam = nil, &block) def rechner(a, b, lam = nil, &block)
lam ||= block lam ||= block
ergebnis = lam.call(a, b) ergebnis = lam.call(a, b)

View File

@ -1,6 +1,7 @@
# Lösung: Closure # Lösung: Closure
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def create_counter def create_counter
n = 0 # closure n = 0 # closure
Proc.new { n += 1 } Proc.new { n += 1 }

View File

@ -1,6 +1,7 @@
# Lösung: Hashes und Blöcke # Lösung: Hashes und Blöcke
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
class Cache class Cache
def initialize(&callback) def initialize(&callback)
@data = {} @data = {}

View File

@ -1,6 +1,7 @@
# Lösung: Hashes # Lösung: Hashes
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
```ruby ```ruby
worte = %w{ Bier Schnaps Bier Vodka Rum Baileys Rum Bier Vodka Bier Hugo } worte = %w{ Bier Schnaps Bier Vodka Rum Baileys Rum Bier Vodka Bier Hugo }

View File

@ -1,6 +1,7 @@
# Lösung: Map # Lösung: Map
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
```ruby ```ruby
def leeter(array) def leeter(array)
array.map do |e| array.map do |e|

View File

@ -1,6 +1,7 @@
# Lösung: Map und Reduce # Lösung: Map und Reduce
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
```ruby ```ruby
def char_count(array) def char_count(array)
counts = array.map { |e| e.length } counts = array.map { |e| e.length }

View File

@ -1,6 +1,7 @@
# Lösung: Ausnahmen # Lösung: Ausnahmen
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def division(a, b) def division(a, b)
raise ArgumentError unless (a.is_a? Numeric) && (b.is_a? Numeric) raise ArgumentError unless (a.is_a? Numeric) && (b.is_a? Numeric)
raise ZeroDivisionError if b == 0 raise ZeroDivisionError if b == 0

View File

@ -1,6 +1,7 @@
# Lösung: Klasse Dir und IO # Lösung: Klasse Dir und IO
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def print(f) def print(f)
n = 0 n = 0
puts f, "\n" puts f, "\n"

View File

@ -1,5 +1,6 @@
# Lösung: Iteratoren auf Zahlen # Lösung: Iteratoren auf Zahlen
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
10.downto(0) { |n| puts n } 10.downto(0) { |n| puts n }
``` ```

View File

@ -1,5 +1,6 @@
# Lösung: Quine # Lösung: Quine
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
p = "p = \"%s\"; puts p %% [ p.gsub(/[\"\\\\]/, '\"' => '\\\"', '\\\\' => '\\\\\\\\') ]"; puts p % [ p.gsub(/["\\]/, '"' => '\\"', '\\' => '\\\\') ] p = "p = \"%s\"; puts p %% [ p.gsub(/[\"\\\\]/, '\"' => '\\\"', '\\\\' => '\\\\\\\\') ]"; puts p % [ p.gsub(/["\\]/, '"' => '\\"', '\\' => '\\\\') ]
``` ```

View File

@ -1,6 +1,7 @@
# Lösung: Reguläre Ausdrücke: Match # Lösung: Reguläre Ausdrücke: Match
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def tag?(text) def tag?(text)
!!(/^<.*?>$/ =~ text) !!(/^<.*?>$/ =~ text)
end end

View File

@ -1,6 +1,7 @@
# Lösung: Reguläre Ausdrücke: Matching # Lösung: Reguläre Ausdrücke: Matching
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def reverser(s) def reverser(s)
/(.*) (.*)/ =~ s /(.*) (.*)/ =~ s
"#{$2} #{$1}" "#{$2} #{$1}"

View File

@ -1,6 +1,7 @@
# Lösung: Klassen per Reflection analysieren # Lösung: Klassen per Reflection analysieren
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def analyze(clazz) def analyze(clazz)
puts "Name: #{clazz.to_s}" puts "Name: #{clazz.to_s}"
puts "Elternklasse: #{clazz.superclass}" puts "Elternklasse: #{clazz.superclass}"

View File

@ -1,6 +1,7 @@
# Lösung: Methoden einer Klasse dynamisch erzeugen # Lösung: Methoden einer Klasse dynamisch erzeugen
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def to_leet(s) def to_leet(s)
s.tr('aeiou', '43107') s.tr('aeiou', '43107')
end end

View File

@ -1,6 +1,7 @@
# Lösung: Klasse dynamisch erzeugen # Lösung: Klasse dynamisch erzeugen
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def create_class(super_class) def create_class(super_class)
Class.new(super_class) do Class.new(super_class) do
def who_am_i def who_am_i

View File

@ -1,6 +1,7 @@
# Lösung: Methoden dynamisch aufrufen # Lösung: Methoden dynamisch aufrufen
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
def crazy_caller(obj) def crazy_caller(obj)
# Methoden suchen # Methoden suchen
obj.methods.each do |m| obj.methods.each do |m|

View File

@ -1,6 +1,7 @@
# Lösung: Eigenclass einer Klasse # Lösung: Eigenclass einer Klasse
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
class Numeric class Numeric
class << self class << self
def to_binary(n) def to_binary(n)

View File

@ -1,6 +1,7 @@
# Lösung: Eigenclass eines Objektes # Lösung: Eigenclass eines Objektes
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
s1 = "Hallo" s1 = "Hallo"
s2 = "Welt" s2 = "Welt"

View File

@ -1,6 +1,7 @@
# Lösung: Macro # Lösung: Macro
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
module Javanator module Javanator
def Javanator::javafy def Javanator::javafy
def toString; to_s; end def toString; to_s; end

View File

@ -1,6 +1,7 @@
# Lösung: Metaprogrammierung: Die kleine Petze # Lösung: Metaprogrammierung: Die kleine Petze
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
class Snitch class Snitch
def method_missing(name, *args, **keywords, &block) def method_missing(name, *args, **keywords, &block)
puts "Aufruf von Methode '#{name}'" puts "Aufruf von Methode '#{name}'"

View File

@ -1,6 +1,7 @@
# Lösung: Singleton Methoden # Lösung: Singleton Methoden
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
s1 = "Hallo" s1 = "Hallo"
s2 = "Welt" s2 = "Welt"

View File

@ -1,6 +1,7 @@
# Lösung: Struct # Lösung: Struct
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>```ruby
```ruby
# Klasse (sic!) über Struct erzeugen # Klasse (sic!) über Struct erzeugen
Studierender = Struct.new(:vorname, :nachname, :geboren, :matrikel, :fakultaet) Studierender = Struct.new(:vorname, :nachname, :geboren, :matrikel, :fakultaet)