Ruby. Pradžia

Preview:

Citation preview

Ruby. Pradžia

Vidmantas Kabošis @ VilniusRB, 2013-11-30

Pradžių pradžia

1995

Pradžių pradžia

1995© Kada, jei ne dabar

Visur

Visur - ir Lietuvoje

Žmogui: productivity & fun

“vilniusrb”.length

Žmogui: productivity & fun

“vilniusrb”.length[ 1, 2, 3 ].include?(2)

Žmogui: productivity & fun

“vilniusrb”.length[ 1, 2, 3 ].include?(2)print “YOLO” if 1 > 2

Žmogui: productivity & fun

“vilniusrb”.length[ 1, 2, 3 ].include?(2)print “YOLO” if 1 > 2

10.times do puts “99 bottles…”end

Katės

Objektai

Pradžioje visko, buvo

objektas

Objektų sukūrimas

Tam, kad pagamintume ką nors, reikia

instrukcijos

Klasės

Tam, kad pagamintume ką nors, reikia

klasės

Klasė

Objektai

Klasės aprašymas

class Pavadinimas # metodaiend

Klasės aprašymas

class House def number_of_floors

puts “2” endend

Objekto sukūrimas

home = House.newhome.number_of_floors

Objekto sukūrimas

home = House.newhome.number_of_floors

#=> “2”

Standartiniai objektai

42 # Integer3.14 # Float“VilniusRB” # String[1, 2, 3] # Array{ “pi” => 3.14, “e” => 2.71 } # Hash

Standartiniai objektai

[“langai”, “durys”, “sienos”].size

#=> 3

[“langai”, “durys”, “sienos”].include?(“balkonas”)

#=> false

4 * 2 #=> 8

Vykdymo tvarka

if condition # kodaselse # kitas kodasend

Sąlyga

NEVYKDOMA, jei sąlyga grąžina: false nil

Sąlyga

NEVYKDOMA, jei sąlyga grąžina: false nilVYKDOMA:visa kita :-)

true, tekstas, skaičius, sąrašas, ...

Pavyzdys

class Recipe

def contains?(ingredient)

if [“miltai”, “cukrus”].include?(ingredient)

puts “Šis ingredientas yra!”

else

puts “Teks nusipirkti”

end

end

end

r = Recipe.new

r.contains?(“razinkos”) #=> “Teks nusipirkti”

Sukūrimo metodas

class Recipe

def initialize(ingredients)

@ingredients = ingredients

end

end

r = Recipe.new([“miltai”, “razinkos”])

Objekto kintamasis

class Recipe

def initialize(ingredients)

@ingredients = ingredients

end

def contains?(ingredient)

if @ingredients.include?(ingredient)

puts “YAY!”

end

end

end

Objekto kintamasis

r = Recipe.new([“miltai”, “razinkos”])

r.contains?(“razinkos”)

#=> “YAY!”

r = Recipe.new([“cukrus”, “bananai”])

r.contains?(“razinkos”)

#=> nil

Užduotis

Parašyti klasę, kurios objektas mokėtų sukūrimo metu atsiminti perduotą sąrašą ir pasakyti, ar konkreti dalis yra tame sąraše.

Pavyzdžiui:home = House.new([“sienos”, “laiptai”])home.has?(“langai”) #=> “Ne”home.has?(“sienos”) #=> “Taip”

Papildoma užduotis pirmūnams :-)

Papildykite klasę nauju metodu, kuris pagal perduotą aukštų skaičių, grąžiną pastato aukštį (sakykim, kad vienas aukštas = 3.1 m)

Pavyzdžiui:home.height(2) #=> 6.2home.height(5) #=> 15.5

gem

Ruby klasėsSavo klasėsKitų klasės: gem

Panaudojimas

$ gem install credit_card_validator

Panaudojimas

require “credit_card_validator”

number = '1111 2222 3333 4444'CreditCardValidator::Validator.valid?(number)#=> false

end

@vidmantas+vidmantaskabosisvidmantas@kabosis.lt

Recommended