在Dave Thomas的书"编程Elixir"中,他指出"Elixir强制执行不可变数据"并继续说:
在Elixir中,一旦变量引用了诸如[1,2,3]之类的列表,您就会知道它将始终引用那些相同的值(直到您重新绑定变量).
这听起来像"除非你改变它,否则它不会改变"所以我对可变性和重新绑定之间的区别感到困惑.突出差异的一个例子非常有用.
这两个Java方法非常相似,但我不确定如何进行代码重用.我尝试创建一个通用对象,<T>但由于构造函数,它是不允许的.我可以在这里使用泛型吗?还是应该Event和Hotel有父?我不确定我是否可以在这里使用界面.
private List<Event> extractEvents(List<String> eventList) {
return eventList.stream()
.map(eventName -> new Event(eventName))
.collect(Collectors.toList());
}
private List<Hotel> extractHotels(List<String> hotelList) {
return hotelList.stream()
.map(hotelName -> new Hotel(hotelName))
.collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)