【发布时间】:2020-12-21 22:07:17
【问题描述】:
我今晚刚刚发现了 Haxe,我很高兴地惊讶于它的语法对开发人员的友好程度。很快就明白了,真的很高兴它接近 ECMAScript。
.
└── src/
├── http/
│ ├── Router.hx
│ └── Route.hx
└── Main.hx
我有一个路由器类,它声明了一个“addGetRoute”方法,带有一个可选的第二个参数:
package http;
import http.Route;
class Router
{
var routes: Array<Route>;
public function new()
{
this.routes = [];
}
public function addGetRoute(route: String, ?handler: () -> String): Void
{
this.routes.push(new Route(route, handler));
}
}
这是Route类的内容:
package http;
class Route
{
var route: String;
var handler: () -> String;
public function new(route: String, handler: () -> String)
{
this.route = route;
this.handler = handler;
}
}
我不明白的是,编译器在看到这段代码时并没有抛出错误:
this.routes.push(new Route(route, handler));
我希望它会引发错误,因为第二个参数可以为空。
我错过了什么吗?
【问题讨论】:
标签: haxe