@gabejonson
Верстальщик с намеком на Front

Class Name & @?

Добрый день уважаемые! Кто может объяснить мне такую штуку, что такое этот
class Name

end
и что такое
def Name
 @var = var
end

Читал на ruby-lang, не понял, спрашивал у PHP разработчика ;), ну чтобы аналогию провести, он то же как-то не особо смог объяснить что это...
def
это понятно, аналогия
function Name() {}
в js, но class не понятно ;(
а @var, думал сперва, что это что-то типа
return
но, понял, что это бред... ;(
  • Вопрос задан
  • 247 просмотров
Пригласить эксперта
Ответы на вопрос 3
Freika
@Freika
Senior Ruby on Rails developer
Вам нужно прочитать про классы,переменные экземпляров в Ruby и про методы.
habrahabr.ru/post/48756

И да - спрашивать у PHP-разработчика про Ruby - не лучшая идея.
Ответ написан
ibub1ik
@ibub1ik
Ruby/Rails Dev => Elixir
Класс - это сущность, которая инкапсулирует данные и их поведение. Если проводить аналогию с js, то класс - это прототип (только помимо поведения хранит в себе и данные).
`@var` - это переменная экземпляра, она видна когда контекстом исполнения является конкретный экземпляр класса. Так же в Ruby последнее вычисленное выражение является результатом функции. Аналогична локальной переменной функции в js. Что-то типа такого:
function Name() { return var = 1; }
Ответ написан
@asd111
В EcmaScript 6(современный javascript) тоже появились классы.
Попробуйте запустить
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
    "use strict";
    class Polygon {
        constructor(height, width) {
            this.height = height;
            this.width = width;
        }

        calcArea() {
            return this.height * this.width;
        }
    }
    var p = new Polygon(10, 20);
    alert("height = " + p.height + ", width = " + p.width + ", area = " + p.calcArea());
</script>
</body>
</html>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы