Ruby Flashcards

1
Q

rrrrrr

encoding: utf-8

A

кодировка UTF - 8

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

naming convetions

A

соглашение о наименовании
snake_case (змея для переменных), camelCase(верблюд) в js, kebab - case ( шашлык)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

123.is_a?(Тип)

A

Является ли Тип
возвращает boolean

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Object.to_ s или
Object.to_ i или
Object.to_f

A

приведение к типу строка, число или дробное число

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

” #{a}”

A

интерполяция - вычисляется выражение внутри фигурных скобок и результат вычисления приводится к строке. Обязательно двойные кавычки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Object.chomp

A

метод класса String отрезает ненужный перевод строки \n

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

!

A

Bang. ! в конце метода. Переопределяет переменную. Изменение значения этой переменной. Не у всех методов. Смотрим документацию.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

блок кода

A

часть кода, которая куда то передается для последующего исполенения. Записывается между do и end или {}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

10.times{|i|блок кода}

A

повторить блок кода 10 раз

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

10.upto(12){|i| блок кода}
10.downto(8){|i| блок кода}

A

повторять блок кода с 10 до 12 раз передвавая 10 в i
up прибавлять, down вычитать

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

?

A

в конце метода означает что метод возвращает значение типа boolean (просто обозначение)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Integer.even?
Integer.odd?

A

метод четное - верно
метод нечетное - верно

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

rand(1 .. n)

A

рандомное число в диапазоне от 1 до n

бе

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

loop do … end

A

бесконечный цикл, выход с помощью exit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

тернарный оператор

A

go_rain? ? go_home() : go_street()
n > 4 ? htjdh(n) : hhhhg(n)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

sleep n

A

делает паузу на n

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

@name

A

переменная экземпляра name позволяет получать доступ к переменной объявленной вне метода. Не является локальной для метода. префикс @. Область видимости класс. Класс main.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

arr = []
arr = Array.new(10){‘dsa’}

A

массив - какой то набор данных (данные не обязательно должны быть одного типа), над которыми можно проводить какие то действия. arr &laquo_space;123 или arr.push(123) - добавить объект в массив

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

arr.each do |item| блок кода do

A

пройти по каждому элементу массива или arr.each {|item| блок кода}. итерация массива.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

%w (…. … ..)

A

запись набора слов в массив упрощенная

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

arr = Array.new(10){Array.new(10)}
arr =[[],[],[]]

A

Создание массивов в массиве

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

gem install

A

установка gema в консоле (библиотека или пакет).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

arr[i][j][k]
arr[i]

A

Обращение к элементу массива массивов
arr[row][column]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

ие

Array.empty?

A

метод, возращает пустой ли массив, на nil не проверяет (array.nil?)
в Rails !arr.blank, arr.present?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

if true , if ‘’ , if ‘ ‘, if [] блок кода end

A

выполняется блок кода при if

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

array.size
array.lenght

A

Метод определяет количество элементов в массиве

27
Q

array.count {|x| x==0}

A

Метод, который считает количество элементов удовлетворяющих условию. Пример x == 0. Можно записать arr.count(&:zero?)

28
Q

Array.include?(x)
‘x’ - если символ

A

Метод, проверяющий х в массиве если есть выдает true.

29
Q

Array.push()
Array.unshift()
arr.pop()
arr.shift()

A

добавление в конец массива, «
добавление в начало массива
извлечение из конца массива
извлечение из начала массива

30
Q

x = : something

A

почти то же самое что и строки. экземпляры класса Symbol
отличия
Символ является неизменяемым (immutable), нельзя выполнить опасную операцию . Ссылки на одинаковые символы всегда одинаковы.

31
Q

obj = {:ase => 23, :tyu = >45, ‘dffv’ => 67}
______________________________________________
obj = {}
obj[:ase] = 23
obj[:tyu] = 45
obj[:dffv] = 67

A

Объявление Хеша. Хеш - хранилище типа ключ-значение.
puts obj[:ase]

32
Q

hh.keys

A

Выводит список ключей хэша

33
Q

set = Set.new

A

Создание HashSet. Set отличается от хеша тем что хранит только ключи, значения не важны. Хранит уникальные, неотсортированые объекты. Для использования нужно подключить require ‘set’.

34
Q

hh.each{|key,value| .. }
hh.each_key{|key| .. }

A

Пройти по хешу.

35
Q

hh.dig(:a, :b)

A

возвращает nil, если ключ в цепочке не найден, возвращает nil

36
Q

hh.has_key?(:abc)

A

проверяет наличие ключа в хеше, возвращает true или false

37
Q

class Сar
end

A

Объявление класса Car

38
Q

car1 = Car.new

A

Создание объкта класса(экземпляра)

39
Q

def initialize …
end

A

Конструктор класса, метод всегда вызывается при создании объекта

40
Q

REPL

A

read(читать) evaluate(выполнить) print(печатает результат) loop(цикл).
Это программа которая читает, выполняет, выводит результат и так по циклу. В Ruby это irb или Pry.

41
Q

123.class

A

выводит класс объекта. В примере Integer

42
Q

&&
||

A

и
или

43
Q

exit

A

выход

44
Q

(1 .. 5).class

A

класс Range. Отвечает за диапазон.

45
Q

\n
\r

A

переход на новую строку.
управляющий символ, возвращает к началу строки. Затирая все предыдущее.

46
Q

методы
def имя_метода (параметр)
end

A

это небольшие участки программы, которые можно использовать повторно.

47
Q

Локальная переменная

A

любая переменная, объявленная внутри метода.

48
Q

метод each. каким бывает.

A

метод итерации. в блок последовательно передается параметр.
для массива,
для String “hello”.each_char {|x| …}
для Range (1001..1005).each{}

49
Q

arr = [], arr[[],[]]
arr = Array.new(n)
arr = Array.new(n){value}

A

Инициализация массива,
создание массива с n элементами, значения nil
создание массива с n элементами, и значением value)

50
Q

arr.inspect

A

метод для вывода информации как в REPL c управляющими символами

51
Q

arr.select{|e| условие e==1}

A

выбор элементов по условию

52
Q

arr.reject{|e| условие …}

A

отсеивает элементы по условию

53
Q

arr.take(n)

A

берет кол-во элементов n из начала массива

54
Q

arr.any?{|e| условие …}
arr.all?{|e| условие …}

A

есть ли хотя бы одно совпадение с условием
все совпадения

55
Q

arr.find_index{|e| условие …}

A

выводит индекс элемента совпадающего с условием

56
Q

hh.each{|key,value| ….}
hh.each_key{|value| …}

A

Итерация хеша

57
Q

def total(options={})
a = options[:a] || 0
b = options[:b] || 0
endцы

A

параметр принимает значение по умолчанию, позволяет использовать метод без ввода параметров. автоматом передается пустой хэш. Для переменных метода устанавливаются параметры по умолчанию поскольку если передается nill, то если nill присваивается 0.

58
Q

x = nil || 123

A

логическое или если nil то выполняется следующее действие те присваивается 123. if nil || true -> если nil, то true

59
Q

instance

A

экземпляр

60
Q

attr_accessor
attr_reader
attr_writer

A

создает методы для чтения и записи переменной
для чтения
для записи

61
Q

module MyModule

A

это участок программы, который можно включить (“Include”) в класс

62
Q

субтипирование Subtyping

A

выделение подтипов одного типа.

63
Q

методы класса

A

статические методы, методы класса
class Person
def self.say(‘name’)
end
Person.say(‘name’)

64
Q
A