2017-01-14 17 views
1

Я знаю, что я могу так поступить таким образом, создавая длинный скрипт для тестирования и запуска, но его можно сократить, не используя так много пометок в Sublime, поскольку я использую Powershell для запуска кода? пут (1 ... 5) .to_a пут "пицца" пут (6..100) .to_aЕсть ли способ заменить все числа от 1 до 100, которые делятся на 3 словом?

+0

Что случилось с образцом кода [tag: ruby]? Вы пытаетесь сделать это в PowerShell или Ruby? –

+0

Я делаю это в возвышенном, а затем превращаю его в рубиновый файл для запуска в powershell. – Migo

ответ

3

попробовать этот

1..100 | %{if ($_ % 3 -eq 0) {'Word'} else {$_} } 
+0

Нам еще не нужен блок else. Только замена будет. –

+0

Протестировано, это не работает без блока 'else'. – sodawillow

+0

@sodawillow: Его работа '1..100 | % {if ($ _% 3 -eq 0) {'Word'}} '. Логически вам нужно заменить это. Так что если условие должно сделать это. Почему нам нужно другое здесь? –

2

Этого фрагмент код будет заменить все цифры от 1 до 100, делятся на 3 со словом pizza. Это вариант @ ответ Esperento57, используя в своего рода трехкомпонентную if строительство:

1..100 | ForEach-Object { @{ $true = "pizza"; $false = $_ }[$_ % 3 -eq 0] } 

Для каждого номера от 1 до 100, если number modulo 3 equals 0, pizza печатается вместо числа.

+1

Могу ли я попросить вас добавить еще какой-нибудь контекст вокруг вашего ответа. Кодовые ответы трудно понять. Это поможет читателю и будущим читателям, если вы сможете добавить дополнительную информацию в свой пост. – RBT

+0

@ RBT правильно, сделано. – sodawillow

+1

@sodawillow намного лучше! +1 –