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
if true , if '' , if ' ', if [] блок кода end
выполняется блок кода при if
26
array.size array.lenght
Метод определяет количество элементов в массиве
27
array.count {|x| x==0}
Метод, который считает количество элементов удовлетворяющих условию. Пример x == 0. Можно записать arr.count(&:zero?)
28
Array.include?(x) 'x' - если символ
Метод, проверяющий х в массиве если есть выдает true.
29
Array.push() Array.unshift() arr.pop() arr.shift()
добавление в конец массива, << добавление в начало массива извлечение из конца массива извлечение из начала массива
30
x = : something
почти то же самое что и строки. экземпляры класса Symbol отличия Символ является неизменяемым (immutable), нельзя выполнить опасную операцию . Ссылки на одинаковые символы всегда одинаковы.
31
obj = {:ase => 23, :tyu = >45, 'dffv' => 67} ______________________________________________ obj = {} obj[:ase] = 23 obj[:tyu] = 45 obj[:dffv] = 67
Объявление Хеша. Хеш - хранилище типа ключ-значение. puts obj[:ase]
32
hh.keys
Выводит список ключей хэша
33
set = Set.new
Создание HashSet. Set отличается от хеша тем что хранит только ключи, значения не важны. Хранит уникальные, неотсортированые объекты. Для использования нужно подключить require 'set'.
34
hh.each{|key,value| .. } hh.each_key{|key| .. }
Пройти по хешу.
35
hh.dig(:a, :b)
возвращает nil, если ключ в цепочке не найден, возвращает nil
36
hh.has_key?(:abc)
проверяет наличие ключа в хеше, возвращает true или false
37
class Сar end
Объявление класса Car
38
car1 = Car.new
Создание объкта класса(экземпляра)
39
def initialize ... end
Конструктор класса, метод всегда вызывается при создании объекта
40
REPL
read(читать) evaluate(выполнить) print(печатает результат) loop(цикл). Это программа которая читает, выполняет, выводит результат и так по циклу. В Ruby это irb или Pry.
41
123.class
выводит класс объекта. В примере Integer
42
&& ||
и или
43
exit
выход
44
(1 .. 5).class
класс Range. Отвечает за диапазон.
45
\n \r
переход на новую строку. управляющий символ, возвращает к началу строки. Затирая все предыдущее.
46
методы def имя_метода (параметр) end
это небольшие участки программы, которые можно использовать повторно.
47
Локальная переменная
любая переменная, объявленная внутри метода.
48
метод each. каким бывает.
метод итерации. в блок последовательно передается параметр. для массива, для String "hello".each_char {|x| ...} для Range (1001..1005).each{}
49
arr = [], arr[[],[]] arr = Array.new(n) arr = Array.new(n){value}
Инициализация массива, создание массива с n элементами, значения nil создание массива с n элементами, и значением value)
50
arr.inspect
метод для вывода информации как в REPL c управляющими символами
51
arr.select{|e| условие e==1}
выбор элементов по условию
52
arr.reject{|e| условие ...}
отсеивает элементы по условию
53
arr.take(n)
берет кол-во элементов n из начала массива
54
arr.any?{|e| условие ...} arr.all?{|e| условие ...}
есть ли хотя бы одно совпадение с условием все совпадения
55
arr.find_index{|e| условие ...}
выводит индекс элемента совпадающего с условием
56
hh.each{|key,value| ....} hh.each_key{|value| ...}
Итерация хеша
57
def total(options={}) a = options[:a] || 0 b = options[:b] || 0 endцы
параметр принимает значение по умолчанию, позволяет использовать метод без ввода параметров. автоматом передается пустой хэш. Для переменных метода устанавливаются параметры по умолчанию поскольку если передается nill, то если nill присваивается 0.
58
x = nil || 123
логическое или если nil то выполняется следующее действие те присваивается 123. if nil || true -> если nil, то true
59
instance
экземпляр
60
attr_accessor attr_reader attr_writer
создает методы для чтения и записи переменной для чтения для записи
61
module MyModule
это участок программы, который можно включить ("Include") в класс
62
субтипирование Subtyping
выделение подтипов одного типа.
63
методы класса
статические методы, методы класса class Person def self.say('name') end Person.say('name')
64