Это точно, что я сделал для своего сервера, все, что необходимо сделать, установить Java, и идентификатор добавляют белый список для ssh сервера, таким образом, можно предотвратить грубые нападения принуждения, которые тяжелы на ресурсах серверов. И также я нашел, когда я запустил свой сервер со шпаклевки или любой другой ssh сессии, сервер остановится, как только я закрыл шпаклевку. Таким образом, я изучил, как запустить его и поддерживать его в рабочем состоянии 24/7.
Экранный-S minecraft java-Xincgc Xmx1G - банка minecraft_server.jar Для выхода из экрана делает Crtl + затем делают Crtl + d И добираться до экрана после того, как выход действительно экранирует-rx
Hope, это помогает Вам, любые другие вопросы посылают мне по электронной почте :)
types = Hash.new(-1) # It feels like this should be 0, but to be
# equivalent to your example it needs to be -1
array.each do |c|
types[c.type] += 1
end
|| =
действительно помогает:
types = {}
array.each do |c|
types[c.class] ||= 0
types[c.class] += 1
end
array.each do |c|
newarray[c.type] = 1 + (newarray[c.type] || -1)
end
В качестве альтернативы
array.each do |c|
newarray[c.type] ||= -1
newarray[c.type] += 1
end
Используйте метод Array # fetch
, для которого вы можете указать значение по умолчанию, если индекс не существует:
array.each do |c|
newarray[c.type] = newarray.fetch(c.type, -1) + 1
end
Ваша переменная newarray
названа странно, поскольку в Ruby и большинстве других языков массивы индексируются целыми числами, а не случайными объектами, такими как Class
. Скорее всего, это хэш
.
Кроме того, вы должны использовать c.class
вместо c.type
, который устарел.
Наконец, поскольку вы создаете хэш
, вы можете использовать inject
следующим образом:
newarray = array.inject( {} ) do |h,c|
h[c.class] = h.key?(c.class) ? h[c.class]+1 : 0
h
end
Или, для однострочника:
newarray = array.inject( {} ) { |h,c| h[c.class] = h.key?(c.class) ? h[c.class]+1 : 0 ; h }
Как видите, это дает желаемые результаты:
irb(main):001:0> array = [1, {}, 42, [], Object.new(), [1, 2, 3]]
=> [1, {}, 42, [], #<Object:0x287030>, [1, 2, 3]]
irb(main):002:0> newarray = array.inject( {} ) { |h,c| h[c.class] = h.key?(c.class) ? h[c.class]+1 : 0 ; h }
=> {Object=>0, Hash=>0, Array=>1, Fixnum=>1}