Мой первый код в гольф!
s=gets.to_i;d=s*2-1;a=Array.new(d){' '*d}
e=d**2;p='*'*e;2.upto(e){|i|2.upto(e/i){|j|p[i*j-1]=' '}};p[0]=' '
s.times{|i|k=s-i-1;l=2*i;m=l+1;o=l-1
m.times{|j|n=j+k;a[k][n]=p[l**2-j];a[n][k]=p[l**2+j];a[k+l][n]=p[m**2-m+j]}
l.times{|j|a[j+k][k+l]=p[o**2+o-j]}}
puts a
Группы - это всего лишь организационный инструмент, и вы можете использовать их наиболее логичным для вас способом.
Часто разработчики помещают свои классы Model, View и Controller в отдельные группы. Вы также можете поместить файлы заголовков в отдельную группу, чтобы уменьшить беспорядок.
Я создаю группу для «служебных» классов, таких как категории, и группу для каждого основного компонента приложения, например «Инспектор» или «Предварительный просмотр» ". В этих группах классы далее организованы в группы «Модель», «Представление» и «Контроллер».
Но решать вам, просто делайте то, что кажется естественным.
Если вы используете модульные тесты, они также могут входить в отдельную группу.
В информационном окне для группы вы можете установить группу, соответствующую настоящая папка на диске. Затем, когда вы создаете файлы в своем проекте, щелкнув правой кнопкой мыши группу и выбрав «Добавить новый файл», Xcode создаст файлы в папке группы.
Я делаю это для своих классов тестовых примеров. Вы можете сделать это для любого набора классов, который хотите сохранить как в отдельной группе, так и в отдельной папке.
Как уже упоминалось другими, я использую группы для модели / представления / контроллера и для модульного тестирования.
Я использую группы также для документации Doxygen ( файл конфигурации doxyfile
и .dot
изображения) и для встроенных приложений, таких как исходный код ffmpeg
.