我已经阅读了很多关于序列化的文章以及它如何如此美妙和精彩,但没有一个论点足够令人信服.我想知道是否有人能真正告诉我通过序列化一个类我们能真正实现的目标是什么?
我有一个结构,@derive Jason.Encoder但该结构中的某些字段是元组,因此无法对结构进行编码,我该如何解决:/
更新
我已经使用下面提到的方法来实现协议。关于这种方法需要注意的一件重要事情是它会改变整个项目的编码,请小心!
我正在为我的数据库使用 Postgrex 库,但我有以下问题:数据库中的列之一的类型为uuid. 我正在使用灵药的UUID模块,但每当我试图坚持一些东西到数据库中,我得到以下错误:Postgrex expected a binary of 16 bytes, got "3c5fda26-ea3b-4c77-8f19-06e106a61eda"。我试图将它存储为普通字符串,但正如您所见,这是不可能的。在将 uuid 持久化到数据库之前,我应该如何转换它?
我有一个类让我们说A类是一个Configuration类,只有在激活配置文件"production"时才会运行.但是在B类中,应用程序的主要逻辑是我正在使用@Autowired注释引用在A类中创建的一些bean ,我的问题是当我运行带有profile的应用程序时让我们说"default"它抛出异常因为没有创建适当的bean.所以我的问题是,只有在配置文件"生产"处于活动状态时,我才能在B类中使用此Autowired?
I have a map and I am modifying each element on it, I am confused which approach is better(faster) to do it with Enum.map and then Enum.into(%{}) or to use for comprehension like
for {key, value} <- my_map, into: %{} do
{key, new_value}
end
Run Code Online (Sandbox Code Playgroud) 我只需要保留唯一值,但我很困惑应该使用哪种数据结构。稍后我只会阅读整个数据结构。
MapSet仅包含唯一元素的which。Enum.member?一个项目是否已经存在 - 但我可以通过 轻松保证这一点MapSet。我不确定在这种情况下使用哪种方法更好。哪个更有效,哪个是更好的做法?
我定义了一个路由器,如下所示:
get("/api/cars", CarController, :cars)
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我cars在函数内部CarController解析params随get请求传递的所有内容。我的cars函数现在正在使用一个case语句,因此如果提供了一些参数,请执行某些操作。我的问题是如何解析路由器中的参数名称,例如,如果我收到这样的 get 请求,/api/cars?type=coupe
我如何在get路由器上匹配该请求,因为我想单独处理它而不是使用该cars函数。
我有一个看起来像这样的代码:
if(num == 1) {
return new Alg1();
} else if (num == 2) {
return new Alg2();
}
...
else if (num == n) {
return new AlgN();
}
Run Code Online (Sandbox Code Playgroud)
我试图使用策略模式,但似乎它不能满足减少if语句的任务,请你建议我用其他方法来做,谢谢
class A{
private String name ;
public A(String name){
this.name = name ;
}
public boolean isName(String nameCheck){
boolean is = true ;
if(nameCheck.matches(name)){
return is;
}else return !is ;
}
}
public class Test{
public static void main(String[] args){
A object = new A("CHIU Shun Kin");
System.out.println(object.isName("?HIU Sh?? ?in"));
}
Run Code Online (Sandbox Code Playgroud)
}
我的主要职责是检查输入名称是否与定义的名称(变量名称)匹配,但是"?" 角色不会被比较.以上是我的代码.我不知道怎么不比较"?" 字符.
这是样本:
名称:"邱顺健"
nameCheck:"?HIU Sh ?? ?in"返回true
nameCheck:"CKIU Sh ?? ?in"返回false
我正在实施一个GenServer,我很困惑.
我知道handle_cast是异步的,这意味着调用者不等待回复,我们返回一个这样的元组:{:noreply, new_state}.
我注意到我们也可以从中返回相同的元组handle_call.这是否意味着如果我有一个handle_call返回{:noreply, new_state},它不会返回任何东西但会同步?调用者的流程将等待GenServer.call命令,然后在handle_call函数完成后继续?
我是Elixir的新手,正在阅读一本书并做一些例子.这是让我在这里提问的一段代码:
defmodule Sequence.Server do
use GenServer
def init(initial_number)do
{:ok,initial_number}
end
def handle_call(:next_number, _from, current_number)do
{:reply, current_number,current_number+1}
end
end
Run Code Online (Sandbox Code Playgroud)
据我所知,在初始化服务器时调用init函数,我们正在定义一些参数 - 这将是服务器的初始状态.令我困惑的是,current_number和initial_number是如何相互关联的,我的意思是在代码中没有我们说的那样的东西
current_number = initial_number
因为当我调用GenServer.call(some_process_id, :next_number)它时从100开始,例如,如果start_link的参数是100.如果我们在初始状态和current_number参数之间没有任何映射,Elixir如何理解它必须从100开始