![]() |
[Ruby] - Задай вопрос, получи ответ
В этой специальной теме новички могут задавать простые вопросы по языку Ruby и всему что с ним связано.
|
ок.
буду первым. недавно начал изучение. вопрос вызвал один код Код:
class Arrayно вот если его изменить на Код:
class Array |
yield в функции inject инвокирует(вызвает исполнение) кодблока переданного функции inject.
то есть суммирование происходит по настоящему в функции inject, алсо return вызывает выход из функции а не из кодблока. поэтому то как ты переписал класс- бред. имхо. |
Я понимаю что это бред ) Просто вызвал вопрос как оно всё же работает.. и почему конкретно...
p.s. тоесть после ретурна всё прекращается? и другие элементы массива уже не трогаются? дак а если ретурн в блоке не ставить.. просто написать { |n, value| n = n + value} то это всё также не работает.. и возвращает 0 |
Цитата:
в инжекте не увеличивается n оно как пришло inject(0) , так нулем и осталось. Код:
def inject(n){ |n, value|n = n + value;} |
В Ruby есть GIL aka Global Interpreter Lock?
И если нету, то дайте пожалуйста пример элементарного многопоточного приложения ... Это просто интерес, не более того ) |
В Руби есть Global VM Lock, но появился он только в интерпретаторе начиная с версии 1.9.
и для 1.8 канонический пример (= Код:
require 'net/http' |
А что означает вот этот код?
Код:
aString = <<END_OF_STRINGособенно вот такой пример Код:
print <<-STRING1, <<-STRING2 |
Цитата:
в первом коде дано объяснение The body of the string is the input lines up to one ending with the same text that followed the '<<' то есть '<<' - метка начала строки, а то что написано за ней END_OF_STRING - метка окончания строки. Дальше по тексту A here document consists of lines in the source up to, but not including, the terminating string that you specify after the << characters. Normally, this terminator must start in the first column. However, if you put a minus sign after the << characters, you can indent the terminator. то есть метка конца строки не должна иметь индентацию, но если это нужно перед меткой надо написать "-" |
да я второй пример плохо понял.. вернее не был уверне что правильна.. а интерпретатора небыло дня три.. вот и запстил.. я надеюсь правильно понял что есть есть - то другие строки исключаются?
|
| Время: 14:39 |