到目前为止,我已经主要接触过OO编程,并期待学习一门函数式语言.我的问题是:
我可以用什么好的例子来解释函数式编程?
观众将是具有少量编程经验的人,或者仅具有面向对象体验的人.
我正在使用Java中的数组,我有一个问题.我知道Java中的数组是类似数据类型的集合,如下所示:
int[] x = new int[]{1,2,3};
Run Code Online (Sandbox Code Playgroud)
上面的声明可以读作一个Integer数组,它是整数类型的集合.
考虑一下:
Object[] x = new Object[]{1,2,3,"srk"};
Run Code Online (Sandbox Code Playgroud)
在这里,我可以说上面是一个数组,它是一个不相似的数据类型的集合,还是一个Object类似数据类型的数组,即对象?
我对此感到困惑和持怀疑态度.在Java中,是否可以创建一个可以容纳不同数据类型的数组或任何类型的集合?
在C++中为每个键创建一个具有任意值类型的关联数组的最佳方法是什么?
目前我的计划是创建一个"值"类,其中包含我期望的类型的成员变量.例如:
class Value {
int iValue;
Value(int v) { iValue = v; }
std::string sValue;
Value(std::string v) { sValue = v; }
SomeClass *cValue;
Value(SomeClass *v) { cValue = c; }
};
std::map<std::string, Value> table;
Run Code Online (Sandbox Code Playgroud)
这样做的缺点是您在访问"值"时必须知道类型.即:
table["something"] = Value(5);
SomeClass *s = table["something"].cValue; // broken pointer
Run Code Online (Sandbox Code Playgroud)
此外,放入Value的类型越多,阵列就越臃肿.
有更好的建议吗?
比如我有
class Order < ActiveRecord::Base
has_many :shippings
has_one :contact_information
belongs_to :shop
end
Run Code Online (Sandbox Code Playgroud)
如何从Order获取关联对象的数组.例如
Order.associations
# [:shipping, :contact_information, :shop]
Run Code Online (Sandbox Code Playgroud)