我正在运行 Arch Linux,我像其他任何 arch 软件包一样安装了 PostgreSQL。我正在使用位于我的用户目录中的本地数据库运行 postgres。( postgres -D /home/user/data/) 当我这样做时,我收到错误FATAL: could not create lock file "/run/postgresql/.s.PGSQL.5432.lock": No such file or directory。创建目录 /run/postgresql 并授予 postgres 用户访问权限可以解决此问题
$ sudo mkdir /run/postgresql
$ sudo chmod a+w /run/postgresql
Run Code Online (Sandbox Code Playgroud)
但是我厌倦了每次重新启动时都编写这些命令,因为重新启动时 /run 会被清除。我可以编写一个脚本来执行这些命令,但我觉得我一开始就以错误的方式这样做。有什么方法可以让 postgres 自己创建它的目录,或者让它不首先使用 /run/postgres 作为它的锁定文件?
我有一个case类Pair(a: Int, b: Int),它代表一对2个整数.为了拥有Pair(2, 5) == Pair(5, 2),我将该equals方法覆盖如下.
override def equals(that: Any): Boolean = that match {
case Corner(c, d) => (a == c && b == d) || (a == d && b == c)
case _ => false
}
Run Code Online (Sandbox Code Playgroud)
现在,平等成立,Pair(2, 5) == Pair(5, 2)返回真实,就像我想要的那样.但是,这在模式匹配时不起作用:
Pair(2, 5) match {
case Pair(5, 2) => print("This is what I want")
case _ => print("But this is what I get")
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我吗?可以/我应该这样做吗?有哪些替代方案?我真的不想case Pair(2, …