Update of exercises
parent
fe2c1c6eb6
commit
58bc23516c
|
@ -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'
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ]
|
||||||
|
|
|
@ -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 }
|
||||||
```
|
```
|
|
@ -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', \
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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')
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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 }
|
||||||
|
|
|
@ -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 = {}
|
||||||
|
|
|
@ -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 }
|
||||||
|
|
||||||
|
|
|
@ -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|
|
||||||
|
|
|
@ -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 }
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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 }
|
||||||
```
|
```
|
|
@ -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(/["\\]/, '"' => '\\"', '\\' => '\\\\') ]
|
||||||
```
|
```
|
|
@ -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
|
||||||
|
|
|
@ -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}"
|
||||||
|
|
|
@ -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}"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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}'"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue