Size: a a a

2020 July 17

VV

Vadim Venediktov in RubyRush
Всем, у кого возник вопрос «Что такое литералы?»

http://ruby.qkspace.com/ruby-chto-takoe-literal
источник

В

Владислав in RubyRush
Владислав
Т.е. функция (ее имя) равняется тому, что она возвращает в результате выполнения?
Это как бы очевиднл, но вы спросили же про аргументы функции
источник

В

Владислав in RubyRush
Или аргументы != Параметры?
источник

K

Kirill Ilyin in RubyRush
Владислав
Т.е. функция (ее имя) равняется тому, что она возвращает в результате выполнения?
Это означает то, что когда вы создаёте функцию/процедуру/метод с её аргументами, аргументы являются ВСЕГДА переменными, а не названиями других функций/процедур/методов или ещё хуже литералов. Вот если бы в программировании аргументы функций/процедур/методов являлись литералами, то программистам пришлось бы от 1 до +бесконечности создавать копии одной и той же функции/процедуры/методов с различными вариантами литералов, например:

def name('Sobaka')
end

def name('hello world')
end

и так далее.

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

В

Владислав in RubyRush
Kirill Ilyin
Это означает то, что когда вы создаёте функцию/процедуру/метод с её аргументами, аргументы являются ВСЕГДА переменными, а не названиями других функций/процедур/методов или ещё хуже литералов. Вот если бы в программировании аргументы функций/процедур/методов являлись литералами, то программистам пришлось бы от 1 до +бесконечности создавать копии одной и той же функции/процедуры/методов с различными вариантами литералов, например:

def name('Sobaka')
end

def name('hello world')
end

и так далее.

И если бы такое было в реальности, я уверен на 100%, что программисты уже давно бы забили на это дело и не занимались программированием.
Согласен с вами, я это понимаю, но не понимаю, почему вы сказали ,что выше я ответил не верно
источник

K

Kirill Ilyin in RubyRush
Владислав
Т.е. функция (ее имя) равняется тому, что она возвращает в результате выполнения?
И да, в любом языке программирования функция ничему не равняется. У неё нет такого понятие, как "равняется чему-то или кому-то". Функция - это инструкция, написанная на каком-то языке программирования, которая выполняет ряд определённых команд в теле функции и обязательно что-то возвращает, поскольку это функция/метод, а не процедура (в языке программирования Pascal это очень важно понимать, в чём разница между функцией и процедурой).
источник

K

Kirill Ilyin in RubyRush
Владислав
Согласен с вами, я это понимаю, но не понимаю, почему вы сказали ,что выше я ответил не верно
Потому что вы до сих пор думаете, что в аргументе метода конструктора - это вызов метода name, а не то, что name - это локальная переменная.
источник

В

Владислав in RubyRush
Kirill Ilyin
Потому что вы до сих пор думаете, что в аргументе метода конструктора - это вызов метода name, а не то, что name - это локальная переменная.
Дошло, спасибо.

Я почему то рассматривал данный процесс внутри класса(эпикфэйл) забыл, о том, что это значение локальной переменной задается в теле основной программы
источник

K

Kirill Ilyin in RubyRush
Kirill Ilyin
У вас возникает такой вопрос только потому что, вы не знаете или не понимаете синтаксически, что такое функция/процедура/метод в любом языке программирования (от Ruby это не зависит от слова точно), из каких частей состоит функция/процедура/метод, что каждая из этих частей функции/процедуры/метода означает. Вот из-за этого у вас и проблемы. Если этот вопрос не разберёте, то дальше будет хуже. Ну и собственно говорят, вы можете мне ответить (и не только мне) на следующий вопрос: что такое аргумент функции/процедуры/метода?
Вот поэтому я не зря расписал этот комментарий о синтаксисе написания функции/метода/процедуры. Потому что если синтаксически разобрать, что это такое, то и вопросов таких не возникнет в будущем.
источник

В

Владислав in RubyRush
Вот невнимательность, когда мысленно ты работаешь работу, а паралельно, что то "в перерывах между боями" пытаешься тихонько кодить😁
источник

В

Владислав in RubyRush
Kirill Ilyin
Вот поэтому я не зря расписал этот комментарий о синтаксисе написания функции/метода/процедуры. Потому что если синтаксически разобрать, что это такое, то и вопросов таких не возникнет в будущем.
Очень развернуто и подробно)
источник

K

Kirill Ilyin in RubyRush
Более того, если вы мне не верите, то вы в режиме отладки можете это проверить, поставив в теле метода name точку останова. И вы увидите, что вы туда никогда не сможете попасть. Вы туда сможете попасть, если не будет локальной переменной с таким же именем.
источник

VV

Vadim Venediktov in RubyRush
Владислав
Очень развернуто и подробно)
👍
источник

M

Maxon in RubyRush
Может рефлексия?
источник

M

Maxon in RubyRush
Ну, я в вебе сам много не шарю, ну примеров рекурсии в вебе не видел. А там хз
источник

DM

Dmitriy Tensei Malys... in RubyRush
иногда, например parent/child категории на сайте, на примерах ток на это наталкивался)
источник

E

Eugene in RubyRush
источник

E

Eugene in RubyRush
источник

M

Michael in RubyRush
ровно так же как и в других сферах
источник

IL

Ilya L. in RubyRush
С рекурсией на руби еще легко поймать ошибку  stack level too deep.
источник