Для полноты, значение ассоциации enum может быть доступно также с использованием оператора if с сопоставлением с образцом. Вот решение для исходного кода:
enum Number {
case int (Int)
case float (Float)
}
let integer = Number.int(10)
let float = Number.float(10.5)
if case let .int(i) = integer {
print("integer is \(i)")
}
if case let .float(f) = float {
print("float is \(f)")
}
Это решение подробно описано в: https://appventure.me/2015/10/17/advanced-practical-enum-examples/
* означает подстановочный знак при использовании подстановочного знака, который вы делаете с бифуркацией в ServerName
<VirtualHost *:80>
DocumentRoot /var/www/app1
ServerName app1.example.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/example
ServerName example.com
</VirtualHost>
Apache отправит example.com в / var / www / example, где, когда app1.example.com будет перенаправлен на / Var / WWW / app1
VirtualHost
позволяет настраивать и использовать несколько сайтов, расположенных на одном и том же IP-адресе. В этом случае с *:80
вы создаете виртуальный хост для каждого запроса, поступающего на порт 80. Это становится более интересным, когда вы начинаете специализироваться и начинаете вставлять что-то, кроме *
в виртуальный хост. Примером может быть то, что в соответствии с IP-адресом, с которым поражен порт, вы можете открыть другую версию веб-сайта, возможно, с различными ресурсами, такими как: языковые переводы, стили и т. Д.