Различие между “и” и && в Ruby?

Да. * в нотации говорится, что, что, передают стек, указатель, т.е., адрес чего-то. Эти & говорит, что это - ссылка. Эффект подобен, но не идентичен:

Позволяют нам взять два случая:

   void examP(int* ip);
   void examR(int& i);

   int i;

, Если я звоню examP, я пишу

   examP(&i);

, который берет адрес объекта и передает его стеку. Если я звоню examR,

   examR(i);

мне не нужен он; теперь компилятор "так или иначе" передает ссылку - который практически означает, что это получает и передает адрес i. На стороне кода тогда

   void examP(int* ip){
        *ip += 1;
   }

я должен удостовериться, что разыменовал указатель. ip += 1 делает что-то совсем другое.

   void examR(int& i){
        i += 1;
   }

всегда обновления значение [1 111].

Для больше для размышления о читайте на "вызове по ссылке" по сравнению с "вызовом по значению". & понятие дает вызов по ссылке C++.

303
задан Andrew Marshall 17 May 2012 в 18:58
поделиться

2 ответа

and is the same as && but with lower precedence. They both use short-circuit evaluation.

WARNING: and even has lower precedence than = so you'll usually want to avoid and. An example when and should be used can be found in the Rails Guide under "Avoiding Double Render Errors".

335
ответ дан 23 November 2019 в 01:23
поделиться

Две структуры бесконечно рекурсивно рекурсируют друг друга - чтобы узнать размер Class1 , вам необходимо знать размер Class2 который требует размера Class1 и т. д. Обходной путь для этого - использовать указатель по крайней мере в одном из случаев:

237
ответ дан 23 November 2019 в 01:23
поделиться
Другие вопросы по тегам:

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