Академический Документы
Профессиональный Документы
Культура Документы
.NET Developer
butaji.wordpress.com
yafos@yandex.ru
i as int
i = "Hello World!"
Boo реализует Выведение типов
(Type Inference):
import System.Collections.Generic
// Infers i as type System.Int32
i = 21
i += 21
def Foo():
return Dictionary[of string,
List[of int]]()
h = Foo()
Приведение типов (Auto casting):
// Auto casts i to double
i as int = 42.1
d as double = 42
// Errors
//d = i as double
//d = System.Exception()
Отступ слева является
синтаксически значимым:
happyToday =
Convert.ToBoolean(Random().Ne
xt(2))
if happyToday:
print "Hello World!"
else:
for i in range(3):
print "Goodbye World!"
Booобъектно-ориентированный язык
class Dessert:
public name as string
public foo as string
override def ToString():
return name
d = Dessert(foo: "foo", name:
"Crunchy Frog!")
print d.name
Booреализует Common Type
System, что обеспечивает
совместимость с CLR
Boo – это замечательно!
a = (1, 2, 3, 4)
b = (1, "two", 3.0, 4ms)
l = [42, "Silly", 1.618]
l.Add(true)
for i in range(l.Count):
print "${i}: ${l[i]}"
items = i for i in l if i isa int
min = 55m
hrs = 55h
Boo использует регулярные
выражения (оператор match из
perl =~):
"Here is foo” =~ /foo/
m = /abc/.Match("123abc456")
if m.Success:
print "Found match at
position:", m.Index
a1("Action 1!")
a2("Action 2!")
Boo – подручный язык
url, local =
"http://boo.codehaus.org",
"boo.html"
client = WebClient()
call =
client.DownloadFile.BeginInvoke
(url, local)
while not call.IsCompleted:
Console.Write(".")
Boo поддерживает утиную
типизацию:
t=
Type.GetTypeFromProgID("Inter
netExplorer.Application")
ie as duck =
Activator.CreateInstance(t)
ie.Visible = true
ie.Navigate2("http://boo.codeha
us.org")
ИнтерфейсIQuackFu позволяет
динамически добавлять
поведение в класс в реальном
времени
Boo– расширяемый язык:
позволяет создавать макросы
так же макросы на основе
аттрибутов
Booразработан для реализации
внутренних DSL
Specter.Framework для
BDD(behavior-driven development)
Booрасширяет условия
компиляции:
class invalidClass:
pass