小编Tei*_*raz的帖子

C ++通过引用局部变量传递

我是C ++的新手

我有以下课程:

class User
{
public:
    User(const string& username) {
         m_username = username;
    }

    string username() const {
        return m_username;
    }

    void setUsername(const string &username) {
        m_username = username;
    }

private:
    string m_username;
};
Run Code Online (Sandbox Code Playgroud)

这是main.cpp代码

User *createUser() {
    string username = "someUser";
    User *u = new User(username);
    return u;
}

int main(int argc, char *argv[])
{
    User *u2 = createUser();
    cout << u2->username() << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在函数中,createUser()我正在创建局部变量username,并将其通过引用传递给User class构造函数。函数结束时,变量username超出范围,因此应删除m_username …

c++ pass-by-reference

5
推荐指数
2
解决办法
2500
查看次数

Scala Future - 用于理解、混合同步和异步

在我的method1中,我需要异步调用另一个method2,它返回Option(result1)。那么,如果 result1 为空,我需要异步调用另一个 method3,但如果 result1 不为空,我只需要返回它。

方法如下:

  def signIn(username: String): Future[User] = {
    for {
      foundUser <- userService.findByUsername(username) // this method returns Future[Option[User]], 
      // foundUser is Option[User]
      user <- if (foundUser.isEmpty) {
        val newUser = User(username = "User123")
        userService.create(newUser).map(Some(_)) // this method returns Future[Option[User]]
      }
      else
        // Here I want to return just foundUser, of course, it is not possible. 
        // IS THIS APPROACH CORRECT?? DOES THIS LINE CREATE ASYNCHRONOUS CALL?          
        Future.successful(foundUser)
    } yield user 
  }
Run Code Online (Sandbox Code Playgroud)

问题是:

Future.successful(foundUser)- 上面的代码中这种方法正确吗?此行是否创建异步调用?如果是这样,如何避免呢?我已经异步获取了 …

scala future for-comprehension

5
推荐指数
1
解决办法
844
查看次数

Scala 中的 DDD:实体应该是不可变的吗?

在许多有关 DDD 的 java 教程中,实体是可变对象。

class Product {  

    private String status;

    public void prepare() {
       this.status = "Prepearing"; 
    } 
}
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,prepare方法会改变对象的内部状态。

但在 scala 中,我希望我的实体是不可变的:

case class Product(status: String) {
    def prepare: Product = {
       this.copy(status = "Prepearing");
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,我没有改变对象,而是返回一个新实体。

就 DDD 而言,拥有不可变实体和上述实现是否可以?

或者您能推荐更好的方法吗?

domain-driven-design scala immutability

5
推荐指数
1
解决办法
1434
查看次数

Scala 2.12.4:无法再从另一个包访问受保护的静态Java方法

我有带有受保护静态方法的java类:

package parent;

public class Parent {

    protected static void parentMethod() {
        System.out.println("I'm in parent static method");
    }

}
Run Code Online (Sandbox Code Playgroud)

在Scala 2.12.4(2.12.3)之前,我可以从另一个包中调用此方法,如下所示:

package child

import parent.Parent

class Child extends Parent {

  def childMethod = {
    println("I'm in child method and calling parentMethod")
    Parent.parentMethod()
  }

}
Run Code Online (Sandbox Code Playgroud)

但Scala 2.12.4不编译此代码.我收到错误:

错误:(9,12)在对象父类的方法parentMethod不能在对象parent.Parent访问访问到受保护的方法parentMethod不允许的,因为前缀类型parent.Parent.type不符合在包孩子在那里访问发生家长反对孩子.parentMethod()

这种访问模式对我来说非常重要,因为JOOQ代码生成使用它.

发生了什么?

scala

5
推荐指数
1
解决办法
189
查看次数

Kotlin 数据类和 Bean 验证:长字段上的 @NotNull 不起作用

这是数据类:

data class CreateCommentRequest(
        @field:NotNull
        @field:NotEmpty
        val comment: String,

        @field:NotNull
        val postId: Long
)
Run Code Online (Sandbox Code Playgroud)

如果我省略comment字段,验证将正确失败。

但如果我没有通过postId,就像这样:

{
    "comment": "hello"
}
Run Code Online (Sandbox Code Playgroud)

验证通过。

如果postId未通过,如何使验证失败?

PS我使用带有com.fasterxml.jackson.module:jackson-module-kotlin模块的spring boot 2.0.1 ,kotlin版本:1.2.20

validation kotlin spring-boot

4
推荐指数
1
解决办法
4465
查看次数

PostgreSQL表中的列顺序是否重要?

例如,我有表用户(id,用户名,电子邮件).

以下查询之间有什么区别吗?(也许是表演,或其他任何事情)

SELECT id, username, email FROM users
Run Code Online (Sandbox Code Playgroud)

SELECT id, email, username FROM users
Run Code Online (Sandbox Code Playgroud)

通常,列顺序是否影响创建PostgreSQL表?

postgresql

3
推荐指数
1
解决办法
1296
查看次数

Scala:带有两个paretneheses的构造函数

我是斯卡拉的新手.以下语法是什么意思?

case class User(val id: Long)(val username: String)
Run Code Online (Sandbox Code Playgroud)

我已经读过关于scala的currying,但请解释一下它与上面的构造有关(如果相关).谢谢.

scala

3
推荐指数
1
解决办法
66
查看次数

播放框架异步操作:未来恢复无法正常工作

我在我的play 2 app中有以下代码:

控制器:

...
    def getUserById(id: Long) = Action.async {
        try {
          userService.findById(id)
            .map(u => Ok(Json.toJson(u))
            .recover {
              case e: Exception => Ok("Exception got")
            }
        }
      }
...
Run Code Online (Sandbox Code Playgroud)

服务:

...
  override def findAll: Future[Seq[User]] = {
    throw new Exception("Error 1")
  }
...
Run Code Online (Sandbox Code Playgroud)

但是在控制器中我无法捕获服务中抛出的异常(以某种方式忽略了恢复块).而是显示标准错误页面,并显示异常"错误1".

我究竟做错了什么?

asynchronous scala future playframework

3
推荐指数
1
解决办法
777
查看次数

Cakephp 3测试:如何从数据库加载记录?

我需要测试一些报告,这些报告具有复杂的数据结构和大量数据影响,因此为此目的创建固定装置将是非常繁琐的工作。我想使用现有的数据库(实际上是数据库的副本)来测试报告。

我如何在cakephp 3测试中实现这一目标?是否可以从cakephp 3中的数据库加载灯具的记录(不是表的结构)?

php testing cakephp cakephp-3.0

3
推荐指数
1
解决办法
600
查看次数

Intellij 和 sbt:如何使 intellij 读取自定义配置文件以进行我的播放应用程序测试?

对于我的测试(Play Framework 2.6 应用程序),我想使用不同的配置文件。

为此,我将以下行添加到build.sbt

javaOptions in Test += "-Dconfig.file=conf/application.test.conf"

当我从 sbt ( sbt test) 运行测试时,它工作正常,读取自定义配置文件。

但是当从 IntelliJ IDEA 运行测试时,它会忽略此设置并使用application.conffile.

如何强制 IntelliJ 使用此 sbt 设置?

testing intellij-idea sbt playframework-2.0

3
推荐指数
1
解决办法
1439
查看次数