diff options
Diffstat (limited to 'ru-ru')
| -rw-r--r-- | ru-ru/.directory | 4 | ||||
| -rw-r--r-- | ru-ru/bash-ru.html.markdown | 9 | ||||
| -rw-r--r-- | ru-ru/clojure-ru.html.markdown | 2 | ||||
| -rw-r--r-- | ru-ru/css-ru.html.markdown | 250 | ||||
| -rw-r--r-- | ru-ru/erlang-ru.html.markdown | 2 | ||||
| -rw-r--r-- | ru-ru/java-ru.html.markdown | 2 | ||||
| -rw-r--r-- | ru-ru/javascript-ru.html.markdown | 5 | ||||
| -rw-r--r-- | ru-ru/objective-c-ru.html.markdown | 2 | ||||
| -rw-r--r-- | ru-ru/perl-ru.html.markdown | 195 | ||||
| -rw-r--r-- | ru-ru/php-ru.html.markdown | 65 | ||||
| -rw-r--r-- | ru-ru/python-ru.html.markdown | 7 | ||||
| -rw-r--r-- | ru-ru/python3-ru.html.markdown | 2 | ||||
| -rw-r--r-- | ru-ru/ruby-ru.html.markdown | 1 | 
13 files changed, 502 insertions, 44 deletions
diff --git a/ru-ru/.directory b/ru-ru/.directory new file mode 100644 index 00000000..4d20336b --- /dev/null +++ b/ru-ru/.directory @@ -0,0 +1,4 @@ +[Dolphin] +SortRole=size +Timestamp=2015,10,31,18,6,13 +Version=3 diff --git a/ru-ru/bash-ru.html.markdown b/ru-ru/bash-ru.html.markdown index 21377b6c..5e99afc2 100644 --- a/ru-ru/bash-ru.html.markdown +++ b/ru-ru/bash-ru.html.markdown @@ -95,6 +95,15 @@ else      echo "Имя совпадает с именем пользователя"  fi +# Примечание: если $Name пустой, bash интерпретирует код как: +if [ -ne $USER ] +# а это ошибочная команда +# поэтому такие переменные нужно использовать так: +if [ "$Name" -ne $USER ] ... +# когда $Name пустой, bash видит код как: +if [ "" -ne $USER ] ... +# что работает правильно +  # Также есть условное исполнение  echo "Исполнится всегда" || echo "Исполнится, если первая команда завершится ошибкой"  echo "Исполнится всегда" && echo "Исполнится, если первая команда выполнится удачно" diff --git a/ru-ru/clojure-ru.html.markdown b/ru-ru/clojure-ru.html.markdown index 2f508a00..451da312 100644 --- a/ru-ru/clojure-ru.html.markdown +++ b/ru-ru/clojure-ru.html.markdown @@ -144,7 +144,7 @@ Clojure, это представитель семейства Lisp-подобн  ;;;;;;;;;;;;;;;;;;;;;  ; Функция создается специальной формой fn. -; "Тело"" функции может состоять из нескольких форм, +; "Тело" функции может состоять из нескольких форм,  ; но результатом вызова функции всегда будет результат вычисления  ; последней из них.  (fn [] "Hello World") ; => fn diff --git a/ru-ru/css-ru.html.markdown b/ru-ru/css-ru.html.markdown new file mode 100644 index 00000000..2e2d40b7 --- /dev/null +++ b/ru-ru/css-ru.html.markdown @@ -0,0 +1,250 @@ +--- +language: css +contributors: +    - ["Mohammad Valipour", "https://github.com/mvalipour"] +    - ["Marco Scannadinari", "https://github.com/marcoms"] +    - ["Geoffrey Liu", "https://github.com/g-liu"] +filename: learncss-ru.css +lang: ru-ru +--- + +В свои ранние дни веб состоял в основном из чистого текста. С развитием браузеров +веб-страницы с графическими элементами стали обычным делом. +CSS - язык, разграничивающий содержимое (HTML) и внешний вид веб-страниц. + +Если коротко, то CSS предоставляет синтаксис, позволяющий выбирать различные +HTML элементы и определять их внешний вид. + +Как и у других языков, у CSS много версий. Мы описываем CSS2.0 - не самую новую, +но самую поддерживаемую и распространенную версию. + +**ВАЖНО:** Так как результатом применения CSS является изменение внешнего вида +элементов, постарайтесь использовать CSS-песочницы при изучении языка. +Например [dabblet](http://dabblet.com/). +В данной статье рассматриваются в первую очередь синтаксис и общие рекомендации. + + +```css +/* Для комментариев используется слеш-астериск, как на этой строчке. +   В CSS нет однострочных комментариев; все комментарии записываются таким способом */ + +/* #################### +   ## СЕЛЕКТОРЫ +   #################### */ + +/* Выражения в CSS очень просты */ +селектор { атрибут: значение; /* другие атрибуты...*/ } + +/* селекторы используются для выбора элементов на странице + +Чтобы выбрать все элементы, используйте астериск: */ +* { color:red; } + +/* +Если на странице присутствует такой элемент: + +<div class='some-class class2' id='someId' attr='value' otherAttr='en-us foo bar' /> +*/ + +/* его можно выбрать по одному классу */ +.some-class { } + +/* или по обоим классам */ +.some-class.class2 { } + +/* по названию тега */ +div { } + +/* по идентификатору */ +#someId { } + +/* по имеющемуся атрибуту */ +[attr] { font-size:smaller; } + +/* или по атрибуту с определенным значением */ +[attr='value'] { font-size:smaller; } + +/* можно выбрать атрибуты, начинающиеся с определенного значения (CSS3) */ +[attr^='val'] { font-size:smaller; } + +/* или заканчивающиеся определенным значением (CSS3) */ +[attr$='ue'] { font-size:smaller; } + +/* содержащие отделенное пробелами значение в названии атрибута (CSS3)  */ +[otherAttr~='foo'] { font-size:smaller; } + +/* можно выбрать атрибут как с точным, так и со стоящим после значения “-” (U+002D) */ +[otherAttr|='en'] { font-size:smaller; } + + +/* Более того, все это можно использовать вместе - между разными частями +не должно быть пробелов, иначе селектор будет иметь совершенно иное значение  */ +div.some-class[attr$='ue'] { } + +/* Вы можете выбрать элемент по его родителю */ + +/* прямой потомок другого элемента (выбранного с помощью селектора) */ +div.some-parent > .class-name {} + +/* потомок любого родителя в дереве элементов +   следующая строка означает: "любой элемент класса "class-name", +   являющийся потомком div-элемента класса "some-parent" +   НЕЗАВИСИМО ОТ УРОВНЯ ВЛОЖЕННОСТИ" */ +div.some-parent .class-name {} + +/* важно: этот же селектор без пробелов имеет иное значение +   можете догадаться, какое? */ +div.some-parent.class-name {} + +/* вы можете выбрать элемент по первому предшествующему +   родственному элементу */ +.i-am-before + .this-element { } + +/* или любому предшествующему родственнику перед элементом */ +.i-am-any-before ~ .this-element {} + + +/* Существуют псевдо-классы, позволяющие изменять внешний вид элемента +   в зависимости от событий, произошедших с элементом */ + +/* например, когда курсор наведен на элемент */ +element:hover {} + +/* когда пользователь проходил по ссылке ранее */ +element:visited {} + +/* или еще не проходил по ней */ +element:link {} + +/* выбранное поле воода (input) */ +element:focus {} + + +/* #################### +   ## АТРИБУТЫ +   #################### */ + +selector { +     +    /* Единицы измерения */ +    width: 50%; /* проценты */ +    font-size: 2em; /* умножается на высоту шрифта (2em - в два раза больше) */ +    width: 200px; /* пиксели */ +    font-size: 20pt; /* пункты */ +    width: 5cm; /* сантиметры */ +    min-width: 50mm; /* милиметры */ +    max-width: 5in; /* дюймы */ +    height: 0.2vh; /* умножается на высоту окна браузера (CSS3) */ +    width: 0.4vw; /* умножается на ширину окна браузера (CSS3) */ +    min-height: 0.1vmin; /* наименьшее из vh и vw (CSS3) */ +    max-width: 0.3vmax; /* наибольшее из vh и vw (CSS3) */ +     +    /* Цвета */ +    background-color: #F6E;  /* сокращенная запись шестнадцатеричного кода */ +    background-color: #F262E2; /* стандартная запись шестнадцатеричного кода */ +    background-color: tomato; /* название цвета */ +    background-color: rgb(255, 255, 255); /* цветовая модель rgb */ +    background-color: rgb(10%, 20%, 50%); /* цветовая модель rgb в процентах */ +    background-color: rgba(255, 0, 0, 0.3); /* цветовая модель rgb (последний аргумент отвечает за прозрачность цвета) (CSS3) */ +    background-color: transparent; /* прозрачный цвет */ +    background-color: hsl(0, 100%, 50%); /* в формате hsl (CSS3) */ +    background-color: hsla(0, 100%, 50%, 0.3); /* в формате hsl (последний аргумент отвечает за непрозрачность цвета) (CSS3) */ + +     +    /* Изображения */ +    background-image: url(/path-to-image/image.jpg); /* кавычки внутри url() опциональны */ +     +    /* Шрифты */ +    font-family: Arial; +    font-family: "Courier New"; /* если в названии есть пробелы, заключите его в кавычки */ +    font-family: "Courier New", Trebuchet, Arial, sans-serif; /* если шрифт не найден, +                             будет использован следующий за ним в списке */ +} + +``` + +## Использование + +Сохраните готовый файл с расширением .css + +```xml +<!-- добавьте css файл в тег <head> на странице: --> +<link rel='stylesheet' type='text/css' href='path/to/style.css' /> + +<!-- Можно использовать встроенные стили. Рекомендуется избегать подобного подхода. --> +<body> +  <style> +     a { color: purple; } +  </style> +</body> + +<!-- Можно установить стиль элемента напрямую. +Используйте этот способ только в случае крайней необходимости. --> +<div style="border: 1px solid red;"> +</div> + +``` + +## Приоритет + +Как вы заметили, внешний вид элемента может определяться несколькими селекторами, +а значение атрибута элемента может быть установлено больше одного раза. +В подобных случаях одно из значений оказывается приоритетнее остальных. + +Если взять следующую таблицу стилей: + +```css +/*A*/ +p.class1[attr='value'] + +/*B*/ +p.class1 {} + +/*C*/ +p.class2 {} + +/*D*/ +p {} + +/*E*/ +p { property: value !important; } + +``` + +и следующую разметку: + +```xml +<p style='/*F*/ property:value;' class='class1 class2' attr='value'> +</p> +``` + +Приоритет стилей будет таким: +Помните: приоритет выставляется для **атрибута**, а не для всего блока стилей. + +* `E` имеет наивысший приоритет благодаря ключевому слову `!important`. +    Используйте только в случае крайней необходимости. +* `F` идет следующим, так как является встроенным стилем. +* `A` следующий, как самый конкретизированный.   +    конкретизированный == большее количество определителей. +    В этом примере 3 определителя: 1 тег `p` +    +    название класса `class1` + 1 атрибут `attr='value'` +* `C` следующий. Несмотря на одинаковое с `B` количество определителей, +    `C` определен позже. +* Затем `B` +* И последний `D`. + +## Совместимость + +Несмотря на то, что большая часть функций CSS2 (а также CSS3) подеррживается всеми +браузерами и устройствами, не забывайте проверять совместимость CSS-правил +с современными браузерами. + +[QuirksMode CSS](http://www.quirksmode.org/css/) замечательно подходит для этого. + +To run a quick compatibility check, [CanIUse](http://caniuse.com) is a great resource. + +## Ресурсы для самостоятельного изучения + +* [Understanding Style Precedence in CSS: Specificity, Inheritance, and the Cascade](http://www.vanseodesign.com/css/css-specificity-inheritance-cascaade/) +* [QuirksMode CSS](http://www.quirksmode.org/css/) +* [Z-Index - The stacking context](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Understanding_z_index/The_stacking_context) diff --git a/ru-ru/erlang-ru.html.markdown b/ru-ru/erlang-ru.html.markdown index 99ea79ee..69f81800 100644 --- a/ru-ru/erlang-ru.html.markdown +++ b/ru-ru/erlang-ru.html.markdown @@ -18,7 +18,7 @@ lang: ru-ru  % Пунктуационные знаки, используемые в Erlang:  % Запятая (`,`) разделяет аргументы в вызовах функций, структурах данных и  % образцах. -% Точка (`.`) (с пробелом после них) разделяет функции и выражения в +% Точка (`.`) (с пробелом после неё) разделяет функции и выражения в  % оболочке.  % Точка с запятой (`;`) разделяет выражения в следующих контекстах:  % формулы функций, выражения `case`, `if`, `try..catch` и `receive`. diff --git a/ru-ru/java-ru.html.markdown b/ru-ru/java-ru.html.markdown index 005495cc..b24ad555 100644 --- a/ru-ru/java-ru.html.markdown +++ b/ru-ru/java-ru.html.markdown @@ -451,7 +451,7 @@ public class Fruit implements Edible, Digestible {      }  } -// В Java Вы можете наследоватьтолько один класс, однако можете реализовывать +// В Java Вы можете наследовать только один класс, однако можете реализовывать  // несколько интерфейсов. Например:  public class ExampleClass extends ExampleClassParent implements InterfaceOne, InterfaceTwo {      public void InterfaceOneMethod() { diff --git a/ru-ru/javascript-ru.html.markdown b/ru-ru/javascript-ru.html.markdown index 79844565..54499f46 100644 --- a/ru-ru/javascript-ru.html.markdown +++ b/ru-ru/javascript-ru.html.markdown @@ -330,7 +330,7 @@ function sayHelloInFiveSeconds(name) {  sayHelloInFiveSeconds("Адам"); // Через 5 с откроется окно «Привет, Адам!»  /////////////////////////////////// -// 5. Подробнее об объектах; конструкторы и прототипы +// 5. Подробнее об объектах; Конструкторы и Прототипы  // Объекты могут содержать в себе функции.  var myObj = { @@ -470,9 +470,6 @@ myNumber === myNumberObj; // = false  if (0) {      // Этот код не выполнится, потому что 0 - это ложь.  } -if (Number(0)) { -    // Этот код *выполнится*, потому что Number(0) истинно. -}  // Впрочем, объекты-обёртки и встроенные типы имеют общие прототипы,  // поэтому вы можете расширить функционал строк, например: diff --git a/ru-ru/objective-c-ru.html.markdown b/ru-ru/objective-c-ru.html.markdown index e987dd53..d60db1d8 100644 --- a/ru-ru/objective-c-ru.html.markdown +++ b/ru-ru/objective-c-ru.html.markdown @@ -17,7 +17,7 @@ Cocoa Touch.  Он является объектно-ориентированным языком программирования общего назначения,  который добавляет обмен сообщениями в Smalltalk-стиле к языку программирования C. -```objective_c +```objective-c  // Однострочные комментарии начинаются с //  /* diff --git a/ru-ru/perl-ru.html.markdown b/ru-ru/perl-ru.html.markdown new file mode 100644 index 00000000..a907ba41 --- /dev/null +++ b/ru-ru/perl-ru.html.markdown @@ -0,0 +1,195 @@ +--- +category: language +language: perl +filename: learnperl-ru.pl +contributors: +    - ["Korjavin Ivan", "http://github.com/korjavin"] +translators: +    - ["Elena Bolshakova", "http://github.com/liruoko"] +lang: ru-ru +--- + +Perl 5 -- высокоуровневый мощный язык с 25-летней историей.  +Особенно хорош для обработки разнообразных текстовых данных.  + +Perl 5 работает более чем на 100 платформах, от портативных устройств +до мейнфреймов, и подходит как для быстрого прототипирования,  +так и для крупных проектов.  + +```perl +# Комментарии начинаются с символа решетки. + + +#### Типы переменных в Perl + +#  Скалярные переменные начинаются с знака доллара $. +#  Имя переменной состоит из букв, цифр и знаков подчеркивания,  +#  начиная с буквы или подчеркивания.  + +### В Perl три основных типа переменных: скаляры, массивы, хеши. + +## Скаляры +#  Скаляр хранит отдельное значение: +my $animal = "camel"; +my $answer = 42; + +# Скаляры могут быть строками, целыми и вещественными числами. +# Когда требуется, Perl автоматически выполняет преобразования к нужному типу. + +## Массивы +#  Массив хранит список значений: +my @animals = ("camel", "llama", "owl"); +my @numbers = (23, 42, 69); +my @mixed   = ("camel", 42, 1.23); + + +## Хеши +#   Хеш хранит набор пар ключ/значение: + +my %fruit_color = ("apple", "red", "banana", "yellow"); + +#  Можно использовать оператор "=>" для большей наглядности: + +my %fruit_color = ( +        apple  => "red", +        banana => "yellow", +        ); + +# Важно: вставка и поиск в хеше выполняются за константное время,  +# независимо от его размера. + +# Скаляры, массивы и хеши подробно описаны в разделе perldata +# (perldoc perldata). + +# Более сложные структуры данных можно получить, если использовать ссылки. +# С помощью ссылок можно получить массив массивов хешей, в которых хранятся другие хеши. + +#### Условные операторы и циклы + +# В Perl есть большинсво привычных условных и циклических конструкций. + +if ( $var ) { +    ... +} elsif ( $var eq 'bar' ) { +    ... +} else { +    ... +} + +unless ( condition ) { +                   ... +               } +# Это более читаемый вариант для "if (!condition)" + +# Специфические Perl-овые пост-условия:  +print "Yow!" if $zippy; +print "We have no bananas" unless $bananas; + +#  while +  while ( condition ) { +                   ... +               } + + +# for, foreach +for ($i = 0; $i <= $max; $i++) { +                   ... +               } + +foreach (@array) { +                   print "This element is $_\n"; +               } + +for my $el (@array) { +                   print "This element is $el\n"; +               } + +#### Регулярные выражения + +# Регулярные выражения занимают важное место в Perl-е, +# и подробно описаны в разделах документации perlrequick, perlretut и других. +# Вкратце: + +# Сопоставление с образцом +if (/foo/)       { ... }  # выполняется, если $_ содержит "foo" +if ($a =~ /foo/) { ... }  # выполняется, если $a содержит "foo" + +# Простые замены + +$a =~ s/foo/bar/;         # заменяет foo на bar в строке $a +$a =~ s/foo/bar/g;        # заменяет ВСЕ ВХОЖДЕНИЯ foo на bar в строке $a + + +#### Файлы и ввод-вывод + +# Открыть файл на чтение или запись можно с помощью функции "open()". + +open(my $in,  "<",  "input.txt")  or die "Can't open input.txt: $!"; +open(my $out, ">",  "output.txt") or die "Can't open output.txt: $!"; +open(my $log, ">>", "my.log")     or die "Can't open my.log: $!"; + +# Читать из файлового дескриптора можно с помощью оператора "<>".   +# В скалярном контексте он читает одну строку из файла, в списковом --  +# читает сразу весь файл, сохраняя по одной строке в элементе массива: + +my $line  = <$in>; +my @lines = <$in>; + +#### Подпрограммы (функции) + +# Объявить функцию просто: + +sub logger { +    my $logmessage = shift; +    open my $logfile, ">>", "my.log" or die "Could not open my.log: $!"; +    print $logfile $logmessage; +} + +# Теперь можно использовать эту функцию так же, как и встроенные: + +logger("We have a logger subroutine!"); +``` + +#### Perl-модули + +Perl-овые модули предоставляют широкий набор функциональности,  +так что вы можете не изобретать заново велосипеды, а просто скачать  +нужный модуль с CPAN (http://www.cpan.org/).  +Некоторое количество самых полезных модулей включено в стандартную  +поставку Perl. + +Раздел документации perlfaq содержит вопросы и ответы о многих частых  +задачах, и часто предлагает подходящие CPAN-модули. + + +#### Unicode + +Вам наверняка понадобится работать с не-ASCII текстами. +Добавьте эти прагмы в начало скрипта: + +```perl +use utf8; +use open ':std' => ':utf8'; +``` + +Подробнее читайте в perldoc, разделы perlunicode и open. + + +#### strict, warnings + +Прагмы strict и warnings включают полезные проверки во время компиляции: + +```perl +use strict; +use warnings; +``` + +Подробнее смотрите perldoc strict и perldoc warnings. + + +#### Смотрите также + + - [perl-tutorial](http://perl-tutorial.org/) + - [обучающий раздел на www.perl.com](http://www.perl.org/learn.html) + - [perldoc в вебе](http://perldoc.perl.org/) + - встроенная справка : `perldoc perlintro` diff --git a/ru-ru/php-ru.html.markdown b/ru-ru/php-ru.html.markdown index 53b2f916..37b6a86e 100644 --- a/ru-ru/php-ru.html.markdown +++ b/ru-ru/php-ru.html.markdown @@ -5,6 +5,7 @@ contributors:      - ["Trismegiste", "https://github.com/Trismegiste"]  translators:      - ["SlaF", "https://github.com/SlaF"] +    - ["Corpsee", "https://github.com/corpsee"]  lang: ru-ru  filename: learnphp-ru.php  --- @@ -14,8 +15,8 @@ filename: learnphp-ru.php  ```php  <?php // PHP код должен быть заключен в теги <?php -// Если ваш файл содержит только PHP код, то можно -// пропустить закрывающийся ?> +// Если ваш файл содержит только PHP-код, то можно +пропустить закрывающий ?>  // А так начинаются комментарии @@ -30,10 +31,10 @@ filename: learnphp-ru.php  print('Hello '); // Напечатать "Hello " без перевода строки  // () необязательно применять для print и echo -echo "World\n"; // Печатать "World" и перейти на новую строку. +echo "World\n"; // Напечатать "World" и перейти на новую строку.  // (все утверждения должны заканчиваться ;) -// Любые символы за пределами закрывающегося тега выводятся автоматически: +// Любые символы за пределами закрывающего тега выводятся автоматически:  ?>  Hello World Again!  <?php @@ -46,7 +47,7 @@ Hello World Again!  // Переменные начинаются с символа $.  // Правильное имя переменной начинается с буквы или знака подчеркивания,  // и может содержать любые цифры, буквы, или знаки подчеркивания. -// Не рекомендуется использовать кирилические символы в именах (прим. пер.) +// Не рекомендуется использовать кириллические символы в именах (прим. пер.)  // Логические значения нечувствительны к регистру  $boolean = true;  // или TRUE или True @@ -56,7 +57,7 @@ $boolean = false; // или FALSE или False  $int1 = 12;   // => 12  $int2 = -12;  // => -12-  $int3 = 012;  // => 10 (ведущий 0 обозначает восьмеричное число) -$int4 = 0x0F; // => 15 (ведущие символы 0x означает шестнадцатеричное число) +$int4 = 0x0F; // => 15 (ведущие символы 0x означают шестнадцатеричное число)  // Дробные числа  $float = 1.234; @@ -126,7 +127,7 @@ echo 'This outputs '.FOO;  // Все массивы в PHP - это ассоциативные массивы или хеши, -// Ассоциативные массивы, известные в других языках как хеш-карты. +// Ассоциативные массивы, известные в других языках как HashMap.  // Работает во всех версиях РHP  $associative = array('One' => 1, 'Two' => 2, 'Three' => 3); @@ -199,13 +200,13 @@ assert($c > $b); // больше  assert($a <= $b); // меньше или равно  assert($c >= $d); // больше или равно -// Следующие утверждения истинны если переменные имеют одинаковый тип. +// Следующие утверждения истинны, если переменные имеют одинаковый тип.  assert($c === $d);  assert($a !== $d);  assert(1 == '1');  assert(1 !== '1'); -// Переменные могут изменять тип, в зависимости от их использования. +// Переменные могут изменять тип в зависимости от их использования.  $integer = 1;  echo $integer + $integer; // => 2 @@ -235,7 +236,7 @@ $var = null; // Null  $integer = 10;  $boolen = settype($integer, "string") // теперь $integer имеет строковый тип -// settype возвращает true - если преобразование удалось и false в противном случае +// settype возвращает true, если преобразование удалось и false в противном случае  /********************************   * Управляющие структуры @@ -311,7 +312,7 @@ echo "\n";  for ($x = 0; $x < 10; $x++) {      echo $x; -} // Prints "0123456789" +} // Напечатает "0123456789"  echo "\n"; @@ -320,7 +321,7 @@ $wheels = ['bicycle' => 2, 'car' => 4];  // Циклы foreach могут обходить массивы  foreach ($wheels as $wheel_count) {      echo $wheel_count; -} // Prints "24" +} // Напечатает "24"  echo "\n"; @@ -337,14 +338,14 @@ while ($i < 5) {          break; // Exit out of the while loop      }      echo $i++; -} // Prints "012" +} // Напечатает "012"  for ($i = 0; $i < 5; $i++) {      if ($i === 3) {          continue; // Skip this iteration of the loop      }      echo $i; -} // Prints "0124" +} // Напечатает "0124"  /******************************** @@ -369,7 +370,7 @@ function add ($x, $y = 1) { // $y по умолчанию равно 1  echo add(4); // => 5  echo add(4, 2); // => 6 -// $result недоступна за пределами функции +// $result недоступен за пределами функции  // print $result; // Выдает предупреждение  // Начиная с PHP 5.3 вы можете объявлять анонимные функции: @@ -402,27 +403,25 @@ echo $function_name(1, 2); // => 3  /******************************** - * Includes + * Включения   */  <?php  // PHP код внутри включаемого файла должен начинаться с тега PHP.  include 'my-file.php'; -// Код в файле my-file.php теперь доступен в текущем в текущем пространстве имен. -// Если файл не удалось включить, будет выдано предупреждение. +// Код в файле my-file.php теперь доступен в текущем пространстве имен. +// Если файл не удалось подключить, то будет выдано предупреждение.  include_once 'my-file.php'; -// Если код в файле my-file.php уже был включен, он не будет включен повторно. -// Это предотвращает ошибку повторного включения файла. +// Если код в файле my-file.php уже был подключен, он не будет подключен повторно. +// Это предотвращает ошибку повторного подключения файла.  require 'my-file.php';  require_once 'my-file.php'; -// Same as include(), except require() will cause a fatal error if the -// file cannot be included.  // Действует также как и include(), но если файл не удалось подключить, -// функция выдает неисправимую ошибку +// функция выдает фатальную ошибку  // Содержимое файла my-include.php:  <?php @@ -452,19 +451,19 @@ class MyClass      static $staticVar   = 'static'; -    // Properties must declare their visibility +    // Свойства объявляются с указанием их видимости      public $property    = 'public';      public $instanceProp; -    protected $prot = 'protected'; // Accessible from the class and subclasses -    private $priv   = 'private';   // Accessible within the class only +    protected $prot = 'protected'; // Свойство доступно только потомкам и самому классу +    private $priv   = 'private';   // Свойство доступно только самому классу -    // Create a constructor with __construct +    // Конструктор описывается с помощью __construct      public function __construct($instanceProp) { -        // Access instance variables with $this +        // Доступ к эземпляру класса с помощью $this          $this->instanceProp = $instanceProp;      } -    // Methods are declared as functions inside a class +    // Методы объявляются как функции принадлежащие классу      public function myMethod()      {          print 'MyClass'; @@ -484,7 +483,7 @@ echo MyClass::MY_CONST;    // Выведет 'value';  echo MyClass::$staticVar;  // Выведет 'static';  MyClass::myStaticMethod(); // Выведет 'I am static'; -// Новый экземпляр класса используя new +// Создание нового экземпляра класса используя new  $my_class = new MyClass('An instance property');  // Если аргументы отсутствуют, можно не ставить круглые скобки @@ -502,7 +501,7 @@ class MyOtherClass extends MyClass          echo $this->prot;      } -    // Override a method +    // Переопределение родительского метода      function myMethod()      {          parent::myMethod(); @@ -595,7 +594,7 @@ class SomeOtherClass implements InterfaceOne, InterfaceTwo   * Трейты   */ -// Трейты появились в PHP 5.4.0 и объявляются при помощи ключевого слова trait +// Трейты появились в PHP 5.4 и объявляются при помощи ключевого слова trait  trait MyTrait  { @@ -611,7 +610,7 @@ class MyTraitfulClass  }  $cls = new MyTraitfulClass(); -$cls->myTraitMethod(); // Prints "I have MyTrait" +$cls->myTraitMethod(); // Напечатает "I have MyTrait"  /******************************** diff --git a/ru-ru/python-ru.html.markdown b/ru-ru/python-ru.html.markdown index a0e2b474..43142eff 100644 --- a/ru-ru/python-ru.html.markdown +++ b/ru-ru/python-ru.html.markdown @@ -167,6 +167,10 @@ li = []  # Можно сразу начать с заполненного списка  other_li = [4, 5, 6] +# строка разделена в список +a="adambard" +list(a) #=> ['a','d','a','m','b','a','r','d'] +  # Объекты добавляются в конец списка методом append  li.append(1)    # [1]  li.append(2)    # [1, 2] @@ -238,7 +242,6 @@ d, e, f = 4, 5, 6  # Обратите внимание, как легко поменять местами значения двух переменных  e, d = d, e     # теперь d == 5, а e == 4 -  #  Словари содержат ассоциативные массивы  empty_dict = {}  # Вот так описывается предзаполненный словарь @@ -277,7 +280,7 @@ filled_dict.get("four", 4) #=> 4  # Присваивайте значение ключам так же, как и в списках  filled_dict["four"] = 4  # теперь filled_dict["four"] => 4 -# Метод setdefault вставляет() пару ключ-значение, только если такого ключа нет +# Метод setdefault() вставляет пару ключ-значение, только если такого ключа нет  filled_dict.setdefault("five", 5) #filled_dict["five"] возвращает 5  filled_dict.setdefault("five", 6) #filled_dict["five"] по-прежнему возвращает 5 diff --git a/ru-ru/python3-ru.html.markdown b/ru-ru/python3-ru.html.markdown index 2a7b3f7b..2b6b59a7 100644 --- a/ru-ru/python3-ru.html.markdown +++ b/ru-ru/python3-ru.html.markdown @@ -549,7 +549,7 @@ Human.grunt() #=> "*grunt*"  # Вы можете импортировать модули  import math -print(math.sqrt(16)) #=> 4 +print(math.sqrt(16)) #=> 4.0  # Вы можете импортировать отдельные функции модуля  from math import ceil, floor diff --git a/ru-ru/ruby-ru.html.markdown b/ru-ru/ruby-ru.html.markdown index 318e0e09..69b5fb46 100644 --- a/ru-ru/ruby-ru.html.markdown +++ b/ru-ru/ruby-ru.html.markdown @@ -158,6 +158,7 @@ array << 6 #=> [1, 2, 3, 4, 5, 6]  hash = {'color' => 'green', 'number' => 5}  hash.keys #=> ['color', 'number'] +hash.values #=> ['green', 5]  # Значение в хэше легко может быть найдено по ключу:  hash['color'] #=> 'green'  | 
