Size: a a a

2021 January 08

Р

Руслан in RubyRush
Алексей Печерский
За что бан? Реально интересный чип, не? Не интересно никому?
Нет. Между интересом и любопытством огромная пропасть. Здесь - интерес к руби (и руби-фреймворкам).

Лично у меня нет любопытства к процам в целом. Это всё-таки узко-направленный чат, а не свалка сообщений. Мы все разные, но тут мы помогаем друг другу, делимся новостями, умничаем, учимся - касательно руби, а не всего-всего на свете.
источник

SG

Stepan Golovko in RubyRush
Руслан
Нет. Между интересом и любопытством огромная пропасть. Здесь - интерес к руби (и руби-фреймворкам).

Лично у меня нет любопытства к процам в целом. Это всё-таки узко-направленный чат, а не свалка сообщений. Мы все разные, но тут мы помогаем друг другу, делимся новостями, умничаем, учимся - касательно руби, а не всего-всего на свете.
Флудовыходные идут сейчас на сколько мне известно
источник

АП

Алексей Печерский... in RubyRush
Руслан
Нет. Между интересом и любопытством огромная пропасть. Здесь - интерес к руби (и руби-фреймворкам).

Лично у меня нет любопытства к процам в целом. Это всё-таки узко-направленный чат, а не свалка сообщений. Мы все разные, но тут мы помогаем друг другу, делимся новостями, умничаем, учимся - касательно руби, а не всего-всего на свете.
Окей, я понял.
источник

Р

Руслан in RubyRush
Stepan Golovko
Флудовыходные идут сейчас на сколько мне известно
У меня другие данные 😂
источник

1

111a in RubyRush
Vladimir T.
Так это потому что это все равно что video_clip.comments=(...), а инстанс метода comments= в классе нет. Ошибка и будет undefined method `comments='
В тему того же.

Выходит массив виден и изменяем в методах, а обычные переменные integer строго локальны?

Я просто нигде инфы не видел на эту тему.
источник

VT

Vladimir T. in RubyRush
111a
В тему того же.

Выходит массив виден и изменяем в методах, а обычные переменные integer строго локальны?

Я просто нигде инфы не видел на эту тему.
def определяет новый скоуп, внутри этого скоупа вы переопределяете var, как указывающий на новый объект. В то время как метод << мутирует переданный объект(массив)
источник

1

111a in RubyRush
Vladimir T.
def определяет новый скоуп, внутри этого скоупа вы переопределяете var, как указывающий на новый объект. В то время как метод << мутирует переданный объект(массив)
медленно начинает доходить.

со строкой, в отличии от массива, это тоже не работает.
источник

VT

Vladimir T. in RubyRush
111a
медленно начинает доходить.

со строкой, в отличии от массива, это тоже не работает.
Строка тоже мутабельна. Попробуйте string << 'another'
источник

1

111a in RubyRush
Vladimir T.
Строка тоже мутабельна. Попробуйте string << 'another'
Спасибо
источник

1

111a in RubyRush
Причем работает это только с «, через += строка не "мутабельна"
источник

VT

Vladimir T. in RubyRush
111a
Причем работает это только с «, через += строка не "мутабельна"
Когда вы пишете var = 1 вы говорите: у меня есть переменная var, я хочу, чтобы она указывала на определённый объект в памяти. Когда вы пишете var += 1 вы говорите, возьми объект, на который указывает var, прибавь один и *переопредели* var, теперь она будет указывать на новый объект в памяти. В то время как определённые объекты *mutable* - 's' << 't' говорит возьми первый объект и измени его самого (вместо 's' - 'st')
источник

1

111a in RubyRush
Vladimir T.
Когда вы пишете var = 1 вы говорите: у меня есть переменная var, я хочу, чтобы она указывала на определённый объект в памяти. Когда вы пишете var += 1 вы говорите, возьми объект, на который указывает var, прибавь один и *переопредели* var, теперь она будет указывать на новый объект в памяти. В то время как определённые объекты *mutable* - 's' << 't' говорит возьми первый объект и измени его самого (вместо 's' - 'st')
Спасибо большое за объяснение!
источник

1

111a in RubyRush
Я, наконец, понял что случается с объектом по умолчанию для хэша.
источник

VT

Vladimir T. in RubyRush
Вернее, строго говоря, не совсем так. var += 1 это тоже самое, что var = var.+(1). То есть вы вызываете метод + у Integer и результат этого метода - новый объект, соответственно, var будет указывать на новый объект
источник

1

111a in RubyRush
Vladimir T.
Вернее, строго говоря, не совсем так. var += 1 это тоже самое, что var = var.+(1). То есть вы вызываете метод + у Integer и результат этого метода - новый объект, соответственно, var будет указывать на новый объект
Я осилил пока только Head First, там примерно так и указано, что числа при изменении всегда дают новый объект. Но без нужной конкретики, что и запутало.
источник

VT

Vladimir T. in RubyRush
111a
Я осилил пока только Head First, там примерно так и указано, что числа при изменении всегда дают новый объект. Но без нужной конкретики, что и запутало.
Ну...
a = 1
b = a

a = a + 1 - 1
a.object_id == b.object_id # true
Но это потому, что 1.object_id == 1.object_id
источник

1

111a in RubyRush
Vladimir T.
Ну...
a = 1
b = a

a = a + 1 - 1
a.object_id == b.object_id # true
Но это потому, что 1.object_id == 1.object_id
относительно объекта по умолчанию для Хэша говорил.
а так да, я согласен - object_id всё по местам расставляет.
источник

VT

Vladimir T. in RubyRush
111a
относительно объекта по умолчанию для Хэша говорил.
а так да, я согласен - object_id всё по местам расставляет.
Да, для хэша мутабельный объект по умолчанию в параметрах не стоит указывать. Лучше через блок {}
источник

E

Eugene in RubyRush
Vladimir T.
Вернее, строго говоря, не совсем так. var += 1 это тоже самое, что var = var.+(1). То есть вы вызываете метод + у Integer и результат этого метода - новый объект, соответственно, var будет указывать на новый объект
здесь напутали
источник

E

Eugene in RubyRush
111a
Я осилил пока только Head First, там примерно так и указано, что числа при изменении всегда дают новый объект. Но без нужной конкретики, что и запутало.
- Все объекты в Ruby передаются "по ссылке". На эту тему можно найти некую общую информацию, универсальную для разных языков программирования.
- У некоторых объектов Ruby (точнее сказать, практически у всех, за исключением "элементарных" типа числа, экземпляра Symbol, boolean и nil - вроде всё) есть методы, которые могут модифицировать этот объект
источник