Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
898
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
950
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
940
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1725
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4398
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Что означают различные скобки в Ruby?
В Ruby, какая разница между {} и [] ?
{} , по-видимому, используется как для блоков кода, так и для хэшей.
Являются ли [] только для массивов?
Документально это не очень понятно.
Это зависит от контекста:
Когда они сами по себе или присваиваются переменной,
[]создает массивы, а{}- хэши. напр.a = [1,2,3] # an array b = {1 => 2} # a hash[]может быть переопределен как пользовательский метод и обычно используется для извлечения объектов из хэшей (стандартная библиотека устанавливает[]как метод для хэшей, который совпадает сfetch)
Существует также соглашение, что он используется в качестве метода класса таким же образом, как вы могли бы использовать методstatic Createв C# или Java. напр.a = {1 => 2} # create a hash for example puts a[1] # same as a.fetch(1), will print 2 Hash[1,2,3,4] # this is a custom class method which creates a new hashСмотрите документ Ruby Hash для этого последнего примера.
Это, пожалуй, самый хитрый вариант -
{}также является синтаксисом для блоков, но только при передаче в метод OUTSIDE аргументов parens.Когда вы вызываете методы без паренса, Ruby смотрит на то, где вы ставите запятые, чтобы выяснить, где заканчиваются аргументы (где были бы парены, если бы вы их ввели)
1.upto(2) { puts 'hello' } # it's a block 1.upto 2 { puts 'hello' } # syntax error, ruby can't figure out where the function args end 1.upto 2, { puts 'hello' } # the comma means "argument", so ruby sees it as a hash - this won't work because puts 'hello' isn't a valid hash
Другое, не столь очевидное, использование [] является синонимом для Proc#call и Method#call.. это может быть немного запутанным при первом знакомстве с ним. Я думаю, что рациональная причина этого заключается в том, что это делает его более похожим на обычный вызов функции.
E.g.
proc = Proc.new { |what| puts "Hello, #{what}!" }
meth = method(:print)
proc["World"]
meth["Hello",","," ", "World!", "\n"]
Вообще говоря, вы правы. Как и хэши, общий стиль заключается в том, что фигурные скобки {} часто используются для блоков, которые могут поместиться все в одну строку, а не использовать do / end через несколько строк.
Квадратные скобки [] используются в качестве методов класса во множестве классов Ruby, включая String, BigNum, Dir и, как ни странно, Hash. Так:
Hash["key" => "value"]
это так же справедливо, как:
{ "key" => "value" }
Квадратные скобки [ ] используются для инициализации массивов. Документация для инициализатора case of [ ] находится в
ri Array::[]
Фигурные скобки { } используются для инициализации хэшей. Документация для инициализатора case of { } находится в
ri Hash::[]
Квадратные скобки также обычно используются в качестве метода во многих основных классах ruby, таких как Array, Hash, String и других.
Вы можете получить доступ к списку всех классов, которые имеют метод " [ ]", определенный с помощью
ri []
большинство методов также имеют метод " []=", который позволяет назначать вещи, например:
s = "hello world"
s[2] # => 108 is ascii for e
s[2]=109 # 109 is ascii for m
s # => "hemlo world"
Фигурные скобки также можно использовать вместо "do ... end" на блоках, как "{ ... }".
Другой случай, когда вы можете увидеть квадратные скобки или фигурные скобки, используемые - это в специальных инициализаторах, где можно использовать любой символ, например:
%w{ hello world } # => ["hello","world"]
%w[ hello world ] # => ["hello","world"]
%r{ hello world } # => / hello world /
%r[ hello world ] # => / hello world /
%q{ hello world } # => "hello world"
%q[ hello world ] # => "hello world"
%q| hello world | # => "hello world"